【发布时间】:2017-12-16 06:23:51
【问题描述】:
这段代码的目的 [打开 Java 文件,然后那个 Java 文件的内容将显示在新选项卡上] 我也尝试让 compile func 但我需要先在这里解决这个问题。
我的问题是当我尝试打开新的 Java 文件时,我打开的 Java 文件的最后内容累积到 Java 文件的新内容。不知道为什么,有办法解决吗?
package term_project_GUI;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class JavaIDE_UI extends JFrame {
Container contentPane;
JTabbedPane tp;
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JTextArea ta = new JTextArea(15, 30);
JScrollPane sp = new JScrollPane(ta);
JavaIDE_UI() {
setTitle("JavaIDE");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createMenu();
contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
tp = new JTabbedPane();
contentPane.add(tp, BorderLayout.NORTH);
contentPane.add(p2, BorderLayout.SOUTH);
setSize(400, 500);
setVisible(true);
}
void createMenu() {
JMenuBar mb = new JMenuBar();
JMenu File = new JMenu("File");
JMenu Run = new JMenu("Run");
JMenuItem Open = new JMenuItem("Open");
JMenuItem Close = new JMenuItem("Close");
JMenuItem Save = new JMenuItem("Save");
JMenuItem SaveAs = new JMenuItem("Save As");
JMenuItem Quit = new JMenuItem("Quit");
JMenuItem Compile = new JMenuItem("Compile");
Open.addActionListener(new OpenActionListener_open());
File.add(Open);
File.add(Close);
File.add(Save);
File.add(SaveAs);
File.add(Quit);
Run.add(Compile);
mb.add(File);
mb.add(Run);
setJMenuBar(mb);
}
class OpenActionListener_open implements ActionListener {
JFileChooser chooser;
JTextArea ta = new JTextArea(15, 30);
OpenActionListener_open() {
chooser = new JFileChooser();
}
public void actionPerformed(ActionEvent e) {
FileNameExtensionFilter filter = new FileNameExtensionFilter(".java files", "java");
chooser.setFileFilter(filter);
int ret = chooser.showOpenDialog(null);
if (ret != JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null, "File Unchoose.", "Warning", JOptionPane.WARNING_MESSAGE);
return;
}
String fileName = chooser.getSelectedFile().getName();
tp.addTab(fileName, new JScrollPane(ta));
String filePath = chooser.getSelectedFile().getPath();
try {
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String data = "";
while ((data = reader.readLine()) != null) {
ta.append(data+"\n");
}
reader.close();
} catch (IOException e1) {
}
}
}
public static void main(String[] args) {
new JavaIDE_UI();
}
}
【问题讨论】:
-
为每个标签创建一个新的
JTextArea
标签: java swing jtextarea jtabbedpane