我无法让我的GUI显示,我确信我遗漏了一些非常简单的东西。这是作业。包含GUI的类在这里:
public class SorcGUI extends JFrame{
public void SorcGUI(){
JTextArea jta = new JTextArea();
JPanel jp1 = new JPanel();
setTitle ("Sorcerers Cave");
setSize (600, 600);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
JButton jbsearch = new JButton("Search");
JTree jTree = null;
JScrollPane treeView = new JScrollPane(jTree);
JButton jbshow = new JButton("Show Contents");
JButton jbread = new JButton("Import File");
JScrollPane jsoutput = new JScrollPane(jta);
JTextField jtfsearch = new JTextField(" enter search term ");
JLabel jlsearch = new JLabel("Search Type : ");
JComboBox jcbsearch = new JComboBox <> ();
jcbsearch.addItem ("index");
jcbsearch.addItem ("Type");
jcbsearch.addItem ("weight");
//create a panel to hold the buttons and text fields
jp1.add(jbread);
jp1.add(jbshow);
jp1.add(jtfsearch);
jp1.add(jlsearch);
jp1.add(jcbsearch);
jp1.add(jbsearch);
jp1.add(treeView);
//add the components to the GUI
add(jp1, BorderLayout.PAGE_START);
add(jsoutput, BorderLayout.CENTER);
setVisible(true);
jbread.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SorcCave sc = new SorcCave();
}
});
jbshow.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("show");
}
});
jbsearch.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("search");
}
});
我创建GUI的方式只是将以下内容添加到我的main方法中:
SorcGUI gui = new SorcGUI();
该程序只需运行三秒即可构建成功,从不显示GUI。我试图通过将GUI内容放入其自己的类文件来清理我的项目。谢谢你的帮助。
答案 0 :(得分:3)
从void
的构造函数中删除SorcGUI
关键字,以便可以将组件添加到父容器中
public SorcGUI() {
答案 1 :(得分:1)
我复制粘贴你的代码并评论了jbread动作方法,它在Eclipse IDE中的新Java项目中工作。
我只从构造函数方法中删除了'void'。