以下代码的工作原理如下:
用户单击run按钮
程序从指定位置读取文件
程序从中删除内容 <script> </script>
,包括标签本身
程序将编辑的文本返回到 JTextArea
打电话 textArea
我试着把它变成一个全局变量,因为它在两个不同的类中。一旦用户单击“run按钮”,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();
}
}
}
1条答案
按热度按时间t9aqgxwy1#
3个选项:
使您的listener类成为
GUI
,则它将有权访问其外部类的所有字段(在这种情况下不需要使用static)将这两个类完全分开,并将对文本字段的引用传递给侦听器(例如,通过构造函数参数)。
通过访问静态字段
GUI.textArea