Java JFrame小游戏

Java JFrame小游戏,java,jframe,Java,Jframe,我想做一个琐事游戏。我的问题是,当我尝试运行程序时,问题不会出现在框架中。我该怎么办?以下是我到目前为止所做的。任何帮助都会很好。提前谢谢 package trivia; import java.util.Arrays; import java.util.List; public class ChemistryJFrame extends javax.swing.JFrame { String question, answer; ChemistryJFrame[] questi

我想做一个琐事游戏。我的问题是,当我尝试运行程序时,问题不会出现在框架中。我该怎么办?以下是我到目前为止所做的。任何帮助都会很好。提前谢谢

package trivia;
import java.util.Arrays;
import java.util.List;

public class ChemistryJFrame extends javax.swing.JFrame {
    String question, answer;
    ChemistryJFrame[] questionbank = new ChemistryJFrame[3];
    List<ChemistryJFrame> questionlist = Arrays.asList(questionbank);
    int quest;

    public ChemistryJFrame() {
        initComponents();  
    }

    @SuppressWarnings("unchecked")


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        dispose();
        MainJFrame Main = new MainJFrame();
        Main.setVisible(true);

    }                                        

    public static void main(String args[]) {
        ChemistryJFrame bank = new ChemistryJFrame();
        bank.banklist();
        bank.startquiz();
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ChemistryJFrame().setVisible(true);
            }
        });
    }

    public void banklist()
    {
        questionbank[0] = new ChemistryJFrame();
        questionbank[0].question = "Which of the following scientists was awarded the Nobel Prize in 1911 for the discovery of the radioactive elements, radium and polonium?\n A) Charles Darwin\n B) Dmitri Mendeleev\n C) Marie Curie";
        questionbank[0].answer = "C";

        questionbank[1] = new ChemistryJFrame();
        questionbank[1].question = "How many electrons can occupy an s orbital?\n A) one\n B) two\n C) three";
        questionbank[1].answer = "B";

        questionbank[2] = new ChemistryJFrame();
        questionbank[2].question = "Which noble gas has the highest melting point ?\n A) argon\n B) xenon\n C) radon";
        questionbank[2].answer = "C";
    }

    public void startquiz()
    {
        for(quest=1; quest<10; quest++)
        {
            questionlabel.setText(questionbank[quest].question);
        }
    }



    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JLabel questionlabel;
    // End of variables declaration                   
}
包装琐事;
导入java.util.array;
导入java.util.List;
公共类ChemistryJFrame扩展了javax.swing.JFrame{
串问题,回答;
ChemistryJFrame[]问题库=新的ChemistryJFrame[3];
List questionlist=Arrays.asList(questionbank);
智力探索;
公共化学jframe(){
初始化组件();
}
@抑制警告(“未选中”)
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
处置();
MainJFrame Main=新的MainJFrame();
Main.setVisible(true);
}                                        
公共静态void main(字符串参数[]){
ChemistryJFrame bank=新的ChemistryJFrame();
bank.banklist();
bank.startquiz();
invokeLater(new Runnable()){
公开募捐{
新的ChemistryJFrame().setVisible(true);
}
});
}
公开作废银行名单()
{
问题库[0]=新化学JFrame();
问题库[0]。问题=“以下哪位科学家因发现放射性元素镭和钋而获得1911年诺贝尔奖?\n A)查尔斯·达尔文\n B)德米特里·门捷列夫\n C)玛丽·居里”;
问题库[0]。回答=“C”;
问题库[1]=新化学jframe();
问题库[1]。问题=“有多少电子可以占据一个s轨道?\n A)1\n B)2\n C)3”;
问题库[1]。回答=“B”;
问题库[2]=新化学JFrame();
问题库[2]。问题=“哪种惰性气体的熔点最高?\n A)氩\n B)氙\n C)氡”;
问题库[2]。回答=“C”;
}
公共无效startquiz()
{

对于(quest=1;quest您的开始测验功能在我看来完全错误

目前你什么也看不到,因为测验开始功能非常快速地为每个问题设置文本-最后在问题9结束,该问题是空白的,因为你从未在银行列表功能中设置它

我可以想象,您打算将文本设置为质询[0]文本,然后等待某种用户响应?

public void startquiz()
public void startquiz()
{
  for(quest=1; quest<10; quest++)
  {
    questionlabel.setText(questionbank[quest].question);
  }
}
{
对于(quest=1;quest您从未实际创建
questionlabel
。您需要先创建它,然后将其添加到框架中。 在这段代码中:

for(quest=1; quest<10; quest++)
    {
        questionlabel.setText(questionbank[quest].question);
    }

for(quest=1;questIn在ChemistryJFrame构造函数中有一个方法调用
initComponents()
,但您没有列出该方法。这就是神奇的地方,因此它确实取决于该方法。