“简单地”确定 Java 单选按钮 id
Posted
技术标签:
【中文标题】“简单地”确定 Java 单选按钮 id【英文标题】:"Simply" determining Java Radio Button id 【发布时间】:2013-08-09 08:19:53 【问题描述】:我希望 Java 并不像我在它的努力让我相信的那样不优雅。
我正在使用 JRadioButtons,并希望以编程方式确定与它们关联的“ID”。为此,我正在尝试读取其 NetBeans 属性中列出的“名称”。
在ide中,当我右键单击组件时,会出现“更改变量名称...”的选项,我用它来设置诸如rb1,rb2等值。
但在属性面板中,还有“名称”条目可以设置为不同的值。我用它来设置“id”-s,例如 1、2 等。
使用单选按钮,我知道我可以有一系列 if 语句,在处理程序中询问
Object src = evt.getSource();
int val=-1;
if (src == rb1) val=1;
else if (src == rb2) val=2;
else if (src == rb3) val=3;
else val=4;
但是,除了要求我自己用控件名称对 id 值进行硬编码之外,我很容易出现转录错误,我想相信有更简单的单语句方法来实现这一点,例如:
String name = rbGroup.getSelection().getName();
.getText();
.getLabel();
但是,我似乎被多个 if-else 语句的不那么优雅和冗长的使用所困扰。
如何以最简单的方式查询控件以提供 NetBeans IDE 中列出的属性?
【问题讨论】:
哇,我有点失望,因为有人愿意将我的问题否决为“不清楚或缺乏研究努力”。我有工作代码,在发布之前我花了一个多小时在 *** 和谷歌上研究这个。我试图以清晰的方式写作。也许是因为当我真的希望能够查询处理程序之外的组件时,我试图从事件中读取。在使用 c# 和其他使这个过程相对简单的语言的经验之后,我希望有一个 更好的 方法来用 Java 实现这个结果。 毕竟,使用c#,我可以随时获取选中的单选按钮: RadioButton myRB = myRBG.Controls.OfType一种方法是使用按钮的Action Command:
rb1.setActionCommand("1");
然后在事件处理程序中你可以使用:
String command = evt.getActionCommand();
如果您没有明确设置,动作命令默认为按钮的文本。
【讨论】:
效果很好。不幸的是,我没有在单击单选按钮时进行此处理,而是在按下单独的“操作”按钮时进行。那时,我将不得不查询多组单选按钮和其他控件,以确定它们的设置以执行适当的操作。除了对事件执行这些 getActionCommands 并存储它们的值以供以后处理之外,是否没有一种方法可以随时类似地询问任何控件以确定其属性? @user2340426,您可以使用ButtonGroup.getSelection()
方法。然后就可以使用ButtonModel.getActionCommand()
获取命令了。
效果很好。我唯一遇到的问题是在 NetBeans 属性面板中为 ActionCommand 设置的 #s 消失了。必须在构造函数中设置。哦,好吧,至少它有效。谢谢。以上是关于“简单地”确定 Java 单选按钮 id的主要内容,如果未能解决你的问题,请参考以下文章