我在下面创建了执行以下操作的演示:
JTextArea
中编写他们的课程。JButton
以创建与用户创建的类有关的Java文件。JButton
,以实际使用创建的类(带注释的代码)。我不知道这是否是运行运行时创建的类的最佳方法(创建Java文件)。但是,在我的实际项目中,我确实需要在.java文件中创建这些类。
我了解Eclipse不允许注释的部分,因为在编译时,编译器不知道myClass
是什么。我该怎么办?
代码:
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new GridLayout(1,3));
JTextArea editor = new JTextArea();
editor.setPreferredSize(new Dimension(400,400));
editor.setTabSize(4);
editor.setText("public class myClass {\n" +
"\tpublic int myValue;\n" +
"\t\n" +
"\tpublic myClass(int value){\n" +
"\t\tmyValue = value;\n" +
"\t}\n" +
"\t\n" +
"\tpublic int getValue() {\n" +
"\treturn myValue;\n" +
"\t}\n" +
"}");
JButton instantiate = new JButton("Instantiate class");
JButton run = new JButton("Run");
frame.getContentPane().add(editor);
frame.getContentPane().add(instantiate);
frame.getContentPane().add(run);
frame.pack();
frame.setVisible(true);
instantiate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
PrintWriter out = new PrintWriter("src/myClass.java");
out.println(editor.getText());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
});
run.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//This is what I want to do
//myClass myObject = new myClass(4);
//System.out.println("My value is: " + myObject.getValue());
}
});
}
}