Java 只想创建一次对象

Java 只想创建一次对象,java,swing,Java,Swing,我编写这段代码是为了从数据库中加载一些字符串。我想将这些字符串设置为GUI中的复选框。此表单有两个名为“下一个”和“上一个”的按钮。当我选中2个复选框并单击“下一步”按钮时,它将加载其他字符串集。现在,当我单击“上一步”按钮时,我希望获得具有选定状态的先前选定复选框。这些复选框正在动态创建 private void loadAnswers(JPanel jp, String qId) { jp.removeAll(); try { List<Question

我编写这段代码是为了从数据库中加载一些字符串。我想将这些字符串设置为GUI中的复选框。此表单有两个名为“下一个”和“上一个”的按钮。当我选中2个复选框并单击“下一步”按钮时,它将加载其他字符串集。现在,当我单击“上一步”按钮时,我希望获得具有选定状态的先前选定复选框。这些复选框正在动态创建

private void loadAnswers(JPanel jp, String qId) {
    jp.removeAll();
    try {
        List<Question> listQuestion = questionController.performSearch(qId);
        ArrayList<String> answers = new ArrayList<>();
        for (Question question : listQuestion) {
            if (question.getOpA() != null) {
                answers.add("<html>" + question.getOpA().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpB() != null) {
                answers.add("<html>" + question.getOpB().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpC() != null) {
                answers.add("<html>" + question.getOpC().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpD() != null) {
                answers.add("<html>" + question.getOpD().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpE() != null) {
                answers.add("<html>" + question.getOpE().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpF() != null) {
                answers.add("<html>" + question.getOpF().replace("\n", "<br>") + "</html>");
            }
            if (question.getOpG() != null) {
                answers.add("<html>" + question.getOpG().replace("\n", "<br>") + "</html>");
            }
        }
        JCheckBox[] chkBx = new JCheckBox[answers.size()];
        for (int i = 0; i < chkBx.length; i++) {
            chkBx[i] = new JCheckBox();
            chkBx[i].setText(answers.get(i));
            jPanel1.add(chkBx[i]);
        }
        jp.repaint();
        jp.revalidate();
    } catch (RemoteException ex) {
        Logger.getLogger(TestPane.class.getName()).log(Level.SEVERE, null, ex);
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(TestPane.class.getName()).log(Level.SEVERE, null, ex);
    } catch (SQLException ex) {
        Logger.getLogger(TestPane.class.getName()).log(Level.SEVERE, null, ex);
    }
}
private void loadAnswers(JPanel jp,String qId){
jp.removeAll();
试一试{
List listQuestion=questionController.performSearch(qId);
ArrayList answers=新的ArrayList();
for(问题:列表问题){
if(question.getOpA()!=null){
答案。添加(“+question.getOpA()。替换(“\n”,“
”+”); } if(question.getOpB()!=null){ 答案。添加(“+question.getOpB()。替换(“\n”,“
”+”); } if(question.getOpC()!=null){ 答案。添加(“+question.getOpC()。替换(“\n”,“
”+”); } if(question.getOpD()!=null){ 答案。添加(“+question.getOpD()。替换(“\n”,“
”+”); } if(question.getOpE()!=null){ 答案。添加(“+question.getOpE()。替换(“\n”,“
”+”); } if(question.getOpF()!=null){ 答案。添加(“+question.getOpF()。替换(“\n”,“
”+”); } if(question.getOpG()!=null){ 答案。添加(“+question.getOpG()。替换(“\n”,“
”+”); } } JCheckBox[]chkBx=新的JCheckBox[answers.size()]; 对于(int i=0;i
为文本框组织一种存储(最好存储model-textbox值)。我建议买张地图。当您必须移动到下一页时,请检查所有复选框并将值放置在地图中。返回页面后,只需再次从地图中提取值并设置复选框的状态


键可以是答案的文本(如果它是唯一的),也可以是来自问题字段的字符串(question.getOpE())

为文本框组织一种存储(最好存储model-textbox值)。我建议买张地图。当您必须移动到下一页时,请检查所有复选框并将值放置在地图中。返回页面后,只需再次从地图中提取值并设置复选框的状态


键可以是答案的文本,如果它是唯一的,或者是来自问题字段的字符串“(question.getOpE())

并且问题是…?@acdcjunior,但是没有任何问题,答案是CardLayout@mKorbel如果没有为每个问题重新创建复选框,CardLayout就可以了。如果有很多问题是动态的,Cardlayout就不适合了。问题是…?@acdcjunior,但没有任何问题,答案是CardLayout@mKorbel如果没有为每个问题重新创建复选框,CardLayout就可以了。如果有大量的问题,并且这些问题是动态的,Cardlayout将不适合。一页有多个答案。我如何使用地图进行此操作。一页有多个答案。我如何使用地图进行此操作。