Java 遍历列表,但它只显示最后一项

Java 遍历列表,但它只显示最后一项,java,swing,loops,iterator,Java,Swing,Loops,Iterator,我试图实现的是使用一个JLabel来显示列表中的多个项目 我已将列表定义如下,但当我测试代码时,我迭代列表的方法是在单击按钮后,仅显示列表中的最后一项,即“完成!” 我试图在每个按钮单击一个JLabel后,仅显示列表中的下一项 public class ScoutGUI extends javax.swing.JFrame { /** * Creates new form ScoutGUI */ List<String> strings = Ar

我试图实现的是使用一个
JLabel
来显示
列表中的多个项目

我已将列表定义如下,但当我测试代码时,我迭代列表的方法是在单击按钮后,仅显示列表中的最后一项,即
“完成!”

我试图在每个按钮单击一个
JLabel
后,仅显示列表中的下一项

public class ScoutGUI extends javax.swing.JFrame {

    /**
     * Creates new form ScoutGUI
     */
    List<String> strings = Arrays.asList("Do you mind Clutter in Room?", "Do you mind alarm clocks?","Do you mind loud visitors?","Can you sleep with lights on?","Do you mind noise past Midnight?",
        "Do you consider yourself as an introvert?", "Do you consider yourself as an extrovert?","Do you like to go to parties?","Do you drink alcoholic beverages?(21+)", "DONE!");


    ArrayList<Student> obj = new ArrayList<>();
    String name , email , gender , major , year , language , building ;
    int id , i;
    public ScoutGUI() {
        initComponents();
    }

    public ScoutGUI(int a) {
        i = a;
        initComponents();

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        panel1 = new java.awt.Panel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setFont(new java.awt.Font("Courier", 0, 13)); // NOI18N
        jButton1.setText("NO");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setFont(new java.awt.Font("Courier", 0, 13)); // NOI18N
        jButton2.setText("YES");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Courier New", 1, 18)); // NOI18N
        jLabel1.setBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, new java.awt.Color(204, 255, 153)));

        javax.swing.GroupLayout panel1Layout = new javax.swing.GroupLayout(panel1);
        panel1.setLayout(panel1Layout);
        panel1Layout.setHorizontalGroup(
            panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panel1Layout.createSequentialGroup()
                .addGap(71, 71, 71)
                .addComponent(jButton1)
                .addGap(94, 94, 94)
                .addComponent(jButton2)
                .addContainerGap(129, Short.MAX_VALUE))
            .addGroup(panel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        panel1Layout.setVerticalGroup(
            panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panel1Layout.createSequentialGroup()
                .addGap(26, 26, 26)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 159, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2))
                .addContainerGap(68, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        //skip and never

        buttonpressActionPerformed();

    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        //match and update

        buttonpressActionPerformed();

    }                                        

    private void buttonpressActionPerformed() { 


       // int i = 0;


        Iterator<String> iterator = strings.iterator();


        //for (String strin : strings)  
        while (iterator.hasNext())

        {   

            //if (jButton2.isSelected() || jButton1.isSelected())
            //{
            jLabel1.setText(iterator.next());
            //}       

        }

    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ScoutGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ScoutGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ScoutGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ScoutGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ScoutGUI().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private java.awt.Panel panel1;
    // End of variables declaration                   
}
公共类ScoutGUI扩展了javax.swing.JFrame{
/**
*创建新表单ScoutGUI
*/
List strings=Arrays.asList(“你介意房间里乱七八糟吗?”,“你介意闹钟吗?”,“你介意吵闹的访客吗?”,“你能开着灯睡觉吗?”,“你介意午夜过后的噪音吗?”,
“你认为自己是一个内向的人吗?”“你认为自己是一个外向的人吗?”“你喜欢参加聚会吗?”“你喝酒精饮料吗?(21 +)”,“完成”!
ArrayList obj=新的ArrayList();
字符串名称、电子邮件、性别、专业、年份、语言、建筑;
int-id,i;
公众意见{
初始化组件();
}
公共搜索界面(INTA){
i=a;
初始化组件();
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//                           
私有组件(){
panel1=newjava.awt.Panel();
jButton1=newjavax.swing.JButton();
jButton2=newjavax.swing.JButton();
jLabel1=newjavax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setFont(新的java.awt.Font(“Courier”,0,13));//NOI18N
jButton1.setText(“否”);
jButton1.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
jButton1ActionPerformed(evt);
}
});
jButton2.setFont(新的java.awt.Font(“Courier”,0,13));//NOI18N
jButton2.setText(“是”);
jButton2.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
jButton2ActionPerformed(evt);
}
});
jLabel1.setFont(新的java.awt.Font(“Courier new”,1,18));//NOI18N
setboorder(javax.swing.BorderFactory.createMatteBorder(1,1,1,1,new java.awt.Color(204,255,153));
javax.swing.GroupLayout panel1Layout=newjavax.swing.GroupLayout(panel1);
面板1.设置布局(面板1布局);
panel1Layout.setHorizontalGroup(
panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel1Layout.createSequentialGroup()
.addGap(71,71,71)
.addComponent(jButton1)
.addGap(94,94,94)
.addComponent(jButton2)
.addContainerGap(129,简称最大值))
.addGroup(panel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u值)
.addContainerGap())
);
panel1Layout.setVerticalGroup(
panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panel1Layout.createSequentialGroup()
.addGap(26,26,26)
.addComponent(jLabel1,javax.swing.GroupLayout.PREFERRED_SIZE,159,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18,18,18)
.addGroup(panel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(68,简称最大值))
);
javax.swing.GroupLayout=newjavax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(布局);
layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panel1,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u值)
);
layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panel1,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u值)
);
包装();
}//                         
私有void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
//永不放弃
按钮消息已执行();
}                                        
私有void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
//匹配和更新
按钮消息已执行();
}                                        
私有void buttonMessagePerformed(){
//int i=0;
迭代器迭代器=strings.Iterator();
//for(字符串strin:strings)
while(iterator.hasNext())
{   
//if(jButton2.isSelected()|| jButton1.isSelected())
//{
jLabel1.setText(iterator.next());
//}       
}
}
/**
*@param指定命令行参数
*/
公共静态void main(字符串参数[]){
/*设置Nimbus的外观和感觉*/
//
/*如果Nimbus(在JavaSE6中引入)不可用,请使用默认的外观。
*详情
 jLabel1.setText(strings.get(index));
 if (index < strings.size()-1) 
        index++;
List<String> strings=<...>
// 1. store index    
int sentenceIndex = 0; 
// 2. store iterator. You could get ConcurrentModificationException if change list and then use iterator.
Iterator<String> iterator = strings.getIterator();
private void buttonpressActionPerformed() { 
// 1. use index. 
if (sentenceIndex < strings.size()-1) { // avoid IndexOutOfBoundException
  String nextSentence = strings.get(sentenceIndex++);
}
// 2. use iterator
if (iterator.hasNext()) {
  String nextSentence = iterator.next();
}
// 3. calculate current index
String currentSentence = jLabel1.getText();
int currentIndex = strings.indexOf(currentSentence);
int nextIndex = incrementIndex(currentIndex);
String nextSentence = strings.get(nextIndex );