一个JFrame上面放了一个文本框和一个按钮,
怎样才能使文本框为空时按钮不可点击——button.setEnabled(false);
文本框不为空时按钮可点击——button.setEnabled(true);
恳请大哥大姐支招,谢谢!下面附有相关代码:import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JTextFieldAndJButton extends JFrame implements ActionListener{
    JTextField tf;
    JButton button;
    public JTextFieldAndJButton() {
Container cp=getContentPane();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

tf=new JTextField(14);
tf.addActionListener(this);
button=new JButton("Button");
button.addActionListener(this);

cp.setLayout(new FlowLayout());
cp.add(tf); 
cp.add(button);
pack();
setLocation(300,200);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
/**怎样才能使文本框为空时按钮不可点击——button.setEnabled(false);
 * 文本框不为空时按钮可点击——button.setEnabled(true);
 * 恳请大哥大姐支招,谢谢!
 */
}
public static void main(String args[]){
JTextFieldAndJButton frm=new JTextFieldAndJButton();
}
}

解决方案 »

  1.   

    当文本框失去焦点的时候 做个判断内容为空的话 button就不可用
      

  2.   

    import javax.swing.*;
    import java.awt.*;public class JTextFieldAndJButton extends JFrame {    JTextField tf;
        JButton button;    public JTextFieldAndJButton() {
            Container cp = getContentPane();
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            tf = new JTextField(14);
            tf.addKeyListener(new java.awt.event.KeyAdapter() {            public void keyReleased(java.awt.event.KeyEvent evt) {
                    if (tf.getText().equals("")) {
                        button.setEnabled(false);
                    } else {
                        button.setEnabled(true);
                    }
                }
            });
            button = new JButton("Button");
            button.setEnabled(false);
            cp.setLayout(new FlowLayout());
            cp.add(tf);
            cp.add(button);
            pack();
            setLocation(300, 200);
            setVisible(true);
        }    public static void main(String args[]) {
            JTextFieldAndJButton frm = new JTextFieldAndJButton();
        }
    }
      

  3.   

    JTextField input = new JTextField(20);
    JButton okButton = new JButton("OK");
    okButton.setEnabled(false);
    input.getDocument().addDocumentListener(new DocumentListener(){
        public void changeUpdate(DocumentEvent e){
            okButton.setEnabled(com.jgoodides.common.base.Strings.isNotBlank(input.getText()));
        }
        public void insertUpdate(DocumentEvent e){
            okButton.setEnabled(com.jgoodides.common.base.Strings.isNotBlank(input.getText()));
        }
        public void removeUpdate(DocumentEvent e){
            okButton.setEnabled(com.jgoodides.common.base.Strings.isNotBlank(input.getText()));
        }
    });input.setInputVerifier(new InputVerifier(){
        public boolean verify(JComponent c){
            return com.jgoodides.common.base.Strings.isNotBlank(input.getText());
        }
    });
    com.jgoodides.common.base.Strings.isNotBlank 可以替换为自己写的检测string的方法