在Netbeans中构建GUI,我应该使用它?

时间:2013-05-31 22:30:44

标签: user-interface netbeans

我正在Netbeans中构建一个GUI - 它是一个简单的小应用程序 - 转换器程序。基本上,用户键入他们想要转换为文本字段的任何内容,从多个单选按钮(例如lbs到kg)中选择转换,然后单击“转换”。

问题是,我希望“转换”按钮和单选按钮的行为如下:

  1. 程序加载时禁用单选按钮和“转换”按钮。
  2. 如果用户在文本字段中键入一个数字(并且只是一个数字),单选按钮和“转换”按钮将被启用。
  3. 如果使用删除键入的内容,则会再次禁用所有内容,直到键入其他数字。
  4. 我已设法设置单选按钮和“转换”按钮以禁用它们,方法是取消选中每个组件的属性中的“已启用”框。我还能够使用简单的if语句和keyTyped事件来启用/禁用,如下所示:

    private void txtUsrInputKeyTyped(java.awt.event.KeyEvent evt) 
    {                                     
        if (!txtUsrInput.getText().equals(""))
        {
            btnCalculate.setEnabled(true);
        }
        else
        {
            btnCalculate.setEnabled(false);            
        }
    }
    

    我想扩展我的代码,以便如果用户不小心在文本字段中键入了一个字母或符号(不要问我为什么要这样做,当他们知道他们必须只输入一个数字时)然后程序要么忽略他们输入的内容,要么显示错误。当然,例外的是键入句点(。),因为它们可能需要指示十进制数。

    有关我如何做到这一点的任何想法?希望我写的内容有道理!

2 个答案:

答案 0 :(得分:0)

您的GUI

如果你还不知道摇摆,那么学习它。了解所有组件的工作原理对任何开发人员来说都是一个巨大的优势,如果出现任何问题,您就知道如何解决它(或者至少有更好的机会)。看一下this的内容,以获得一些入门帮助。

检查小数

这看起来像正则表达式的工作。您可以执行的操作是指定一个数字[0-9]和一个句点\.。然后确保输入数字或小数一定次数。这里要注意的重要一点是,用户只能键入一个小数,最终会出现:

([0-9]+(\.[0-9]+))

这将允许90.91.9302等值。它将允许.901之类的值。如果您希望允许,只需将第一个+替换为*。:

([0-9]*(\.[0-9]+))

使用

由于文本框包含字符串,因此您可以将其与正则表达式进行比较。简单地:

if(textBox1.getText().matches("([0-9]+(\.[0-9]+))")) {
    // Run some code in here.
}

答案 1 :(得分:0)

好吧,如果GUI很简单,请不要使用GUI Builder,而是从头开始编写代码。遵循更艰难的路径,您将了解布局,动作侦探等等......