我正在Netbeans中构建一个GUI - 它是一个简单的小应用程序 - 转换器程序。基本上,用户键入他们想要转换为文本字段的任何内容,从多个单选按钮(例如lbs到kg)中选择转换,然后单击“转换”。
问题是,我希望“转换”按钮和单选按钮的行为如下:
我已设法设置单选按钮和“转换”按钮以禁用它们,方法是取消选中每个组件的属性中的“已启用”框。我还能够使用简单的if语句和keyTyped事件来启用/禁用,如下所示:
private void txtUsrInputKeyTyped(java.awt.event.KeyEvent evt)
{
if (!txtUsrInput.getText().equals(""))
{
btnCalculate.setEnabled(true);
}
else
{
btnCalculate.setEnabled(false);
}
}
我想扩展我的代码,以便如果用户不小心在文本字段中键入了一个字母或符号(不要问我为什么要这样做,当他们知道他们必须只输入一个数字时)然后程序要么忽略他们输入的内容,要么显示错误。当然,例外的是键入句点(。),因为它们可能需要指示十进制数。
有关我如何做到这一点的任何想法?希望我写的内容有道理!
答案 0 :(得分:0)
您的GUI
如果你还不知道摇摆,那么学习它。了解所有组件的工作原理对任何开发人员来说都是一个巨大的优势,如果出现任何问题,您就知道如何解决它(或者至少有更好的机会)。看一下this的内容,以获得一些入门帮助。
检查小数
这看起来像正则表达式的工作。您可以执行的操作是指定一个数字[0-9]
和一个句点\.
。然后确保输入数字或小数一定次数。这里要注意的重要一点是,用户只能键入一个小数,最终会出现:
([0-9]+(\.[0-9]+))
这将允许9
,0.9
,1.9302
等值。它将不允许.901
之类的值。如果您希望允许,只需将第一个+
替换为*
。:
([0-9]*(\.[0-9]+))
使用
由于文本框包含字符串,因此您可以将其与正则表达式进行比较。简单地:
if(textBox1.getText().matches("([0-9]+(\.[0-9]+))")) {
// Run some code in here.
}
答案 1 :(得分:0)
好吧,如果GUI很简单,请不要使用GUI Builder,而是从头开始编写代码。遵循更艰难的路径,您将了解布局,动作侦探等等......