Java 如何访问相同的文本区域变量?
以下代码的工作原理如下:Java 如何访问相同的文本区域变量?,java,swing,jframe,Java,Swing,Jframe,以下代码的工作原理如下: 用户单击run按钮 程序从指定位置读取文件 程序从中删除内容,包括标记本身 程序将编辑后的文本返回到名为textArea的JTextArea 我试着把它变成一个全局变量,因为它在两个不同的类中。一旦用户单击“运行按钮”,GUI类中初始化的文本区域就会更新 public class GUI{ static JTextArea textArea; public GUI() { JFrame frame = new JFrame()
- 用户单击run按钮
- 程序从指定位置读取文件
- 程序从
中删除内容,包括标记本身 - 程序将编辑后的文本返回到名为
的textArea
JTextArea
public class GUI{
static JTextArea textArea;
public GUI() {
JFrame frame = new JFrame();
textArea = new JTextArea(5,30);
JButton runButton = new JButton("Remove JS");
JButton importButton = new JButton("Import File");
JPanel panel = new JPanel();
runButton.addActionListener(new runApp());
runButton.setBounds(100, 100, 100, 80);
importButton.addActionListener(new importFile());
importButton.setBounds(100, 100, 80, 60);
panel.setBorder(BorderFactory.createEmptyBorder(300, 300 , 150, 150));
panel.setLayout(new GridLayout(0, 1));
panel.add(textArea);
panel.add(runButton);
panel.add(importButton);
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("JavaScript Extractor");
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
}
class runApp implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
RemoveScript run = new RemoveScript();
try {
File fileObject = new File("C:\\Users\\coker\\Documents\\readJS.txt");
Scanner reader = new Scanner(fileObject);
while(reader.hasNextLine()) {
String output = reader.nextLine();
textArea.setText(run.removeScript(output));
}
reader.close();
}catch(FileNotFoundException e) {
System.out.println("An error has occured.");
e.printStackTrace();
}
}
}
3种选择:
- 使您的侦听器类成为
的内部类,那么它将可以访问其外部类的所有字段(在这种情况下不需要静态)GUI
- 将这两个类完全分开,并将对文本字段的引用传递给侦听器(例如,通过构造函数参数)
- 通过
GUI.textArea