2013-06-01 47 views
3

我正在使用for循環創建9 JTextFields並且這工作正常。我的問題是,我想檢查所有這些JTextField是空的或不是'一次。我知道有像方法:如何檢查所有JTexFields是否爲空?

if (textbox.getText().trim().equals("")) 

來檢查JTextField是空的或沒有,但我不知道這是否是適合我使用了的JTextField的方法。下面是我for循環:在列表

 for (int index = 1; index <=9; index++) 
      { 
       JTextField field = new JTextField(3); 
       field.setPreferredSize(new Dimension(150, 50)); 
       field.setHorizontalAlignment(JTextField.CENTER); 
       field.setEditable(false); 
       second.add(field); 
       second.add(Box.createHorizontalStrut(10)); 
       second.add(Box.createVerticalStrut(10)); 

      } 
+0

我不明白,你什麼時候需要檢查它們是否爲空? – Djon

+0

其實,我正在製作一個遊戲「Hang子手」,所以當用戶猜出這個單詞的所有JTextfield都會被這些字母填充時,它就會檢查是否沒有JTextfield是空的,用戶贏了遊戲.. – CrazyPixi

回答

6

Store中的文本字段,這樣就可以在他們後面迭代。

public class ClassContainingTextFields { 
    private final ArrayList<JTextField> textFields = new ArrayList<>(); 

    // ... inside the method that creates the fields ... 
     for (int i = 0; i < 9; i++) { 
      JTextField field = new JTextField(3); 
      // .. do other setup 
      textFields.add(field); 
     } 


    /** 
    * This method returns true if and only if all the text fields are empty 
    **/ 
    public boolean allFieldsEmpty() { 
     for (JTextField textbox : textFields) { 
      if (! textbox.getText().trim().isEmpty()) { 
       return false; // one field is non-empty, so we can stop immediately 
      } 
     } 
     return true; // every field was empty (or else we'd have stopped earlier) 
    } 
    // .... 
} 
+0

是有可能做到這一點,就像所有Jtextfield中都有一些角色一樣,然後停止該程序,實際上我正在製作一個用戶在JTexField中輸入字母的hang子手遊戲。所以,當用戶猜到這個詞的時候,所有的JTexField都充滿了字母,比我想要我的程序檢查,如果evry字段充滿了字符,那麼它會說,用戶的勝利。 – CrazyPixi

+0

你的意思是像'textbox.getText()。indexOf('n')'來測試文本字段中是否有'n'?當然。你可以對一個領域做任何事情,你可以對他們做所有事情。 –

1

請考慮這段代碼。

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 

public class Test extends JFrame implements ActionListener { 
    JTextField tfs[]; 
    JButton btn; 
    public Test(){ 
     setLayout(new FlowLayout()); 
     tfs = new JTextField[9]; 
     for(int i=0; i< tfs.length; i++) { 
      tfs[i] = new JTextField(10); 
      add(tfs[i]); 
     } 
     add(btn = new JButton("Check")); 
     btn.addActionListener(this); 
     setSize(200,300); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    } 
    public void actionPerformed (ActionEvent ae){ 
     boolean pass = true; 
     for(int i=0; i<tfs.length; i++) 
      if(tfs[i].getText().trim().equals("")) 
       pass = false; 

     System.out.println(pass?"Passed":"Failed"); 
    } 
    public static void main (String args[]){ 
     new Test(); 
    } 
} 
1

如何實現自己的DocumentListener?如果所有字段都爲空,則可以使用布爾值,並且可以在字段Document中每次更改後直接執行各種與hang子手相關的檢查。