2013-07-17 46 views
2

我有一個JTextField和一個JButton,當用戶點擊輸入JTextField然後行動必須執行相應的JButton。這是我的代碼片段。如何在JTextField上輸入時對JButton執行操作?

此外,我想禁用輸入和啓用後,當某事在JTextField

JButton jb=new JButton("Print"); 
JTextField jt=new JTextField(20); 
jb.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent ae) 
    { 
    System.out.println(jt.getText()); 
    } 
}); 

回答

3

這裏是您的代碼的修改,我註冊了一個DocumentListener來收聽JTextField中的文本更改,並且還添加了ActionListenerJTextField

jb=new JButton("Print"); 
    jt=new JTextField(20); 

    jt.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent ae) 
     { 
      jb.doClick(); 
     } 
    }); 

    jt.getDocument().addDocumentListener(new DocumentListener(){ 
     public void insertUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
     public void changedUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
     public void removeUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
    }); 

    jb.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent ae) 
     { 
      System.out.println(jt.getText()); 
      jb.setEnabled(false); 
     } 
    }); 
6

改變同樣的動作偵聽器添加到按鈕和文本字段JButton

JButton jb = new JButton("Print"); 
JTextField jt = new JTextField(20); 
ActionListener listener = new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent ae) { 
     System.out.println(jt.getText()); 
    } 
}; 
jb.addActionListener(listener); 
jt.addActionListener(listener); 
+0

但我沒有寫'JButton',我沒有'listener'參考! :( –

+0

這不是你的代碼片段所顯示的內容。如果你從一開始就說過,我的答案會有所不同。 –

+0

對不起,謝謝:) –

2

要執行相同的按鈕單擊操作並在Jfield上按下按鈕。在JTextField中值的任何變化後

JButton jb = new JButton("Print"); 
JTextField jt = new JTextField(20); 
ActionListener listener = new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent ae) { 
     System.out.println(jt.getText()); 
     // Diable Button after action performed. 
     jb.setEnabled(false); 
    } 
}; 
jb.addActionListener(listener); 
jt.addActionListener(listener); 

//啓用按鈕。 JTextField值更改聽衆被引用from Link

jt.getDocument().addDocumentListener(new DocumentListener(){ 
     public void insertUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
     public void changedUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
     public void removeUpdate(DocumentEvent de) 
     { 
      jb.setEnabled(true); 
     } 
    }); 
相關問題