2013-03-29 174 views
1

我在使用NetBeans IDE的java中创建了一个应用程序,并且遇到了问题。它不读取数组元素。下面的代码:读取一串字符串

private void buton1ActionPerformed(java.awt.event.ActionEvent evt) { 
     String[] toppings = new String[20]; 
     toppings[0] = ""; 
     toppings[1] = ""; 
     toppings[2] = ""; 
     toppings[3] = ""; 

     int size = toppings.length; 
     for (int i=0; i<size; i++){ 
      toppings[i]=textbox.getText(); 
      label1.setText(toppings[0]); 
      label2.setText(toppings[1]); 
      label3.setText(toppings[2]); 
      label4.setText(toppings[3]); 
     } 
} 

我想把然后在标签(label1的,LABEL2,LABEL3,label4)每个我按下按钮,在一个新的元素添加一个新值时阵列中的每个元素向量。

此时,当我键入第一个元素的值时,它将值设置为所有标签。

请问有人有想法吗?

+4

Vector在哪里? – Maroun

+0

你很迷惑向量与数组。 –

+0

这也可能会产生问题'int size = toppings.length;',因为它会给你20. – Smit

回答

1

第一个问题,我看到的是,你要设置的标签文本for循环,你真正应该做的之外它的内部:一个JLabel的

for(int i = 0; i < toppings.length; i++){ 
    toppings[i] = textbox.getText(); 
} 

label1.setText(toppings[0]); 
// etc. 
3

您应该创建数组,然后填写达他们在文中的for循环:
enter image description here

private javax.swing.JLabel label[]; 
    //write these lines within constructor or wherever you are creating your GUI 

    label = new javax.swing.JLabel[4];// 
    for (int i = 0 ; i < label.length ;i++) 
    label[i] = new javax.swing.jLabel(); 

然后改变buton1ActionPerformed

private void buton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    String[] toppings = new String[20]; 
    toppings[0] = ""; 
    toppings[1] = ""; 
    toppings[2] = ""; 
    toppings[3] = ""; 

    int size = toppings.length; 
    for (int i=0; i<size; i++){ 
     toppings[i]=textbox.getText(); 
     if (i < 4) 
     label[i].setText(toppings[i]); 
    } 
} 

编辑
在这里,我已经把你的代码的更新版本。只要运行它,告诉我它是否符合您的要求:

public class fereastra extends javax.swing.JFrame { 

    /** 
    * Creates new form fereastra 
    */ 
    public fereastra() { 
     initComponents(); 
     buttonGroup1.add(singleplayer); 
     buttonGroup1.add(twoplayers); 
     buttonGroup1.add(threeplayers); 
     buttonGroup1.add(fourplayers); 
     casutatext.setVisible(true); 
     panel.setVisible(true); 
     text.setText("Wellcome! Please choose the number of players!"); 


    } 

    /** 
    * 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() { 
     label = new javax.swing.JLabel[4];// 
     for (int i = 0 ; i < label.length ;i++) 
     {label[i] = new javax.swing.JLabel();} 

     buttonGroup1 = new javax.swing.ButtonGroup(); 
     casutatext = new javax.swing.JTextField(); 
     text = new javax.swing.JLabel(); 
     buton1 = new javax.swing.JButton(); 
     jButton3 = new javax.swing.JButton(); 
     panel = new javax.swing.JPanel(); 
     fourplayers = new javax.swing.JRadioButton(); 
     twoplayers = new javax.swing.JRadioButton(); 
     threeplayers = new javax.swing.JRadioButton(); 
     singleplayer = new javax.swing.JRadioButton(); 
     test = new javax.swing.JLabel(); 
     test2 = new javax.swing.JLabel(); 
     test3 = new javax.swing.JLabel(); 
     test4 = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     casutatext.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       casutatextActionPerformed(evt); 
      } 
     }); 

     text.setText("Text"); 

     buton1.setText("OK"); 
     buton1.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       buton1ActionPerformed(evt); 
      } 
     }); 

     jButton3.setText("Cancel"); 

     fourplayers.setText("4 players"); 
     fourplayers.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       fourplayersActionPerformed(evt); 
      } 
     }); 

     twoplayers.setText("2 players"); 
     twoplayers.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       twoplayersActionPerformed(evt); 
      } 
     }); 

     threeplayers.setText("3 players"); 
     threeplayers.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       threeplayersActionPerformed(evt); 
      } 
     }); 

     singleplayer.setText("Single player"); 
     singleplayer.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       singleplayerActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout panelLayout = new javax.swing.GroupLayout(panel); 
     panel.setLayout(panelLayout); 
     panelLayout.setHorizontalGroup(
      panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(panelLayout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(singleplayer) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(twoplayers) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(threeplayers) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(fourplayers) 
       .addContainerGap()) 
     ); 
     panelLayout.setVerticalGroup(
      panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(panelLayout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(panelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(singleplayer) 
        .addComponent(twoplayers) 
        .addComponent(threeplayers) 
        .addComponent(fourplayers)) 
       .addContainerGap()) 
     ); 

     test.setText("test"); 

     test2.setText("jLabel1"); 

     test3.setText("jLabel2"); 

     test4.setText("jLabel3"); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(127, 127, 127) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addComponent(panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
          .addComponent(casutatext, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE) 
          .addComponent(text, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(158, 158, 158) 
         .addComponent(label[0]) 
         .addGap(36, 36, 36) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addGroup(layout.createSequentialGroup() 
           .addComponent(buton1) 
           .addGap(35, 35, 35) 
           .addComponent(jButton3)) 
          .addGroup(layout.createSequentialGroup() 
           .addComponent(label[1]) 
           .addGap(32, 32, 32) 
           .addComponent(label[2]) 
           .addGap(31, 31, 31) 
           .addComponent(label[3]))))) 
       .addGap(93, 93, 93)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(61, 61, 61) 
       .addComponent(text) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(casutatext, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(18, 18, 18) 
       .addComponent(panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(12, 12, 12) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(buton1) 
        .addComponent(jButton3)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 50, Short.MAX_VALUE) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(label[0]) 
        .addComponent(label[1]) 
        .addComponent(label[2]) 
        .addComponent(label[3])) 
       .addGap(51, 51, 51)) 
     ); 

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

    private void casutatextActionPerformed(java.awt.event.ActionEvent evt) {           

    }           

    private void buton1ActionPerformed(java.awt.event.ActionEvent evt) {          
     String[] toppings = new String[20]; 
    toppings[0] = ""; 
    toppings[1] = ""; 
    toppings[2] = ""; 
    toppings[3] = ""; 

    int size = toppings.length; 
    for (int i=0; i<size; i++){ 
     toppings[i]=casutatext.getText(); 
     if (i < 4) 
     {label[i].setText(toppings[i]); 
     } 
    } 
    }          

    private void singleplayerActionPerformed(java.awt.event.ActionEvent evt) {            
     numarjucatori=1; 
    }            

    private void twoplayersActionPerformed(java.awt.event.ActionEvent evt) {           
     numarjucatori=2; 
    }           

    private void threeplayersActionPerformed(java.awt.event.ActionEvent evt) {            
     numarjucatori=3; 
    }            

    private void fourplayersActionPerformed(java.awt.event.ActionEvent evt) {            
     numarjucatori=4; 
    }           

    /** 
    * @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(fereastra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(fereastra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(fereastra.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(fereastra.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 fereastra().setVisible(true); 
      } 
     }); 
    } 
    // Variables declaration - do not modify 
    private javax.swing.JButton buton1; 
    private javax.swing.ButtonGroup buttonGroup1; 
    private javax.swing.JTextField casutatext; 
    private javax.swing.JRadioButton fourplayers; 
    private javax.swing.JButton jButton3; 
    private javax.swing.JPanel panel; 
    private javax.swing.JRadioButton singleplayer; 
    private javax.swing.JLabel test; 
    private javax.swing.JLabel test2; 
    private javax.swing.JLabel test3; 
    private javax.swing.JLabel test4; 
    private javax.swing.JLabel text; 
    private javax.swing.JRadioButton threeplayers; 
    private javax.swing.JRadioButton twoplayers; 
    // End of variables declaration 
    public int numarjucatori; 
    public String p1="", p2="", p3="", p4=""; 
    private javax.swing.JLabel label[]; 
} 
+3

你写的标签(标签)不在界面中,所以它不会出现。你能告诉我如何让它出现吗? –

+1

@DanielPatilea如果你把所有的代码放在这个类中,我将能够更好地帮助你。顺便说一句..是label1,label2 ...从接口继承? –

+3

是的,我已经使用界面来添加它们 –