Java 如果所需文本字段为空,如何发出警告?

Java 如果所需文本字段为空,如何发出警告?,java,swing,user-interface,jbutton,Java,Swing,User Interface,Jbutton,我正在尝试创建一个可执行的JButton(打开一个新窗口),选中单选按钮,并在特定范围内填充文本字段(文本字段应为1800到2013)。对于单选按钮,我现在做了一个默认选择,但我不知道如何返回文本字段应该填充的警告(1800到2013之间的数字),如果有,则运行程序 编辑: 如果我的代码是: JFrame .... JPanel .... JTextField txt = new JTextField(); JButton button = new JButton("run"); button

我正在尝试创建一个可执行的JButton(打开一个新窗口),选中单选按钮,并在特定范围内填充文本字段(文本字段应为1800到2013)。对于单选按钮,我现在做了一个默认选择,但我不知道如何返回文本字段应该填充的警告(1800到2013之间的数字),如果有,则运行程序

编辑: 如果我的代码是:

JFrame ....
JPanel ....

JTextField txt = new JTextField();
JButton button = new JButton("run");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//Do things here
}
});
txt.addFocusListener(new FocusListener() {
      ....
}
如何使用
ItemStateListener
。我应该定义一个监听器,然后呢

public void actionPerformed(ActionEvent e)
public void actionPerformed(ActionEvent e)  
{  
    String s = txt.getText();  
    char[] cArr = s.toCharAray();  
    ArrayList<Character> chars = new ArrayList<Character>();  
    for (char c : cArr)  
        if (c.isDigit())  
            chars.add(c);  
    cArr = new char[chars.size()];  
    for (int i = 0;i<chars.size();i++)  
        cArr[i] = char.get(i);  
    s = new String(cArr);  
    txtField.setText(s);  
    if (s.equals(""))  
    {  
        // issue warning  
        return;  
    }  
    int input = Integer.parseInt(s);  
    if (input >=  1800 && input <= 2013)  
    {  
        // do stuff  
    }  
}  
{ 字符串s=txt.getText(); char[]cArr=s.toCharAray(); ArrayList chars=新的ArrayList(); 用于(字符c:cArr) if(c.isDigit()) 添加(c)项; cArr=新字符[chars.size()];
对于(int i=0;i=1800&&单击按钮时输入(在其
actionPerformed
方法中),您可以检查范围,并使用
JOptionPane
来检查值是否超出范围。您可以使用
changeStateListener
ItemStateListener
来监视单选按钮的更改,并且仅当范围在可接受范围内时才启用
JButton
。您的问题是否可以表述为:“如果所需文本字段为空,如何发出警告?”?如果是,则将其添加为一个。如果不是,则形成一个问题并执行相同的操作。”应填写文本字段(1800和2013之间的数字)“对于数值,请改用
JSpinner
。我建议您看看这个由@DavidKroukamp编写的精彩答案,您可能会对这个主题感兴趣。关于这个问题的答案,也是一个很好的主题。有关:-)的Java文档可以找到更多信息我最关心的是条件按钮。如何将textfield的条件(无论是否完全满足条件)传递到为按钮设计的actionlistener中?如果textfield是全局可访问的(应该是全局可访问的),那么您可以使用txt.getText()访问它包含的文本;只需使用我上面发布的代码检查它是否满足条件。此方法将检查文本是否满足条件。