繁体   English   中英

在主方法中创建GUI时似乎未显示GUI

[英]GUI does not seem to display when I create it in my main method

我无法显示我的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的方式只是在我的主要方法中添加以下内容:

SorcGUI gui = new SorcGUI();

该程序只需运行三秒钟即可成功构建,而从未显示GUI。 我试图通过将GUI内容放入其自己的类文件中来清理项目。 感谢您的任何帮助。

SorcGUI的构造函数中删除void关键字,以便可以将组件添加到父容器中

public SorcGUI() {

阅读: 为您的课程提供构造函数

我复制粘贴了您的代码并注释了jbread操作方法,该方法可在Eclipse IDE中的新Java项目中使用。

我只从构造函数方法中删除了“ void”。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM