运行GUI时没有任何反应 [英] Nothing happens when running GUI

查看:200
本文介绍了运行GUI时没有任何反应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为我的班级做一个项目,而我现在正在使用GUI。我没有太多,因为它没有出现,而且令人气愤。这是我的代码。

I'm doing a project for my class and I'm working on the GUI right now. I don't have much because, well, it's not showing up and it's infuriating. Here's my code.

public class BookQuizGUI extends JFrame implements ActionListener
{
    private Container c;
    private JPanel pnlButtons;
    private JButton addQs;
    private JButton takeQuiz;
    private JButton quit;

    private Container c2;
    private JPanel pnlButtons2;
    private JComboBox qType;
    private JComboBox ans;
    private JTextField q;
    private JTextField cA;
    private JTextField cB;
    private JTextField cC;
    private JTextField cD;
    private JButton add;
    private JButton writeAll;
    private JButton done;

    /**
     * 
     */
    public BookQuizGUI()
    {
        //The main screen for when the program starts
        c = getContentPane();
        pnlButtons = new JPanel();
        pnlButtons.setLayout(new GridLayout(1, 3));
        addQs = new JButton("Add Questions");
        takeQuiz = new JButton("Take Quiz");
        quit = new JButton("Quit");

        setTitle("Book Quiz");
        setSize(800, 400);
        setLocation(400, 250);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        pnlButtons.add(addQs);
        pnlButtons.add(takeQuiz);
        pnlButtons.add(quit);

        addQs.addActionListener(this);
        takeQuiz.addActionListener(this);
        quit.addActionListener(this);


        c.add(pnlButtons, BorderLayout.NORTH);
        c.setVisible(true);

        //The screen for when the user presses "Add questions"
        c2 = getContentPane();
        pnlButtons2 = new JPanel();
        qType = new JComboBox();
        qType.addItem("Elementary Question");
        qType.addItem("Standard Question");
        qType.addItem("Advanced Question");

        pnlButtons2.add(qType);
        }

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        BookQuizGUI gui = new BookQuizGUI();
    }

    @Override
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource() == quit)
        {
            System.exit(0);
        }
        else if(e.getSource() == addQs)
        {
            c2.setVisible(true);
        }
    }

}

另一种基本要素我的问题是如何在GUI屏幕之间切换?这段代码应该像书测验一样,你可以添加问题。我只是让一个容器看不见而另一个可见吗?

Another fundamental question of mine is how to go about switching between GUI screens? This code is supposed to have like a book quiz and you can add questions. Do I just make one container not visible and another visible?

推荐答案

你需要打包并将其设置为可见! / p>

You need to pack it and set it to be visible!

    frame.pack();
    frame.setVisible(true);

至于回答第二个问题,为什么不改变元素并重新绘制()屏幕,如果我知道你希望它像一个有多个问题的测验,对吗?

As for answering your second question, why not just change the elements and repaint() the screen, if I understand you want it to be like a quiz with multiple questions, right?

这篇关于运行GUI时没有任何反应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆