下面的代码是这样工作的:
- 用户单击运行按钮
- 程序从指定位置读取文件
- 程序从
<script> </script>
中删除内容,包括标签本身 - 程序将编辑后的文本返回到名为
textArea
的JTextArea
中
我试着把它作为一个全局变量,因为它在两个不同的类中。向下运行是一旦用户点击";"运行按钮";,在GUI类中初始化的文本区域将更新。
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
访问静态字段