我想根据单选按钮的选择来设置文本框的可编辑选项吗?如何在单选按钮上编写动作监听器?单选按钮上的动作监听器
5
A
回答
2
5
我的Java是有些生疏,但是这应该是你在找什么。
这里是你的听众:
private RadioListener implements ActionListener{
private JTextField textField;
public RadioListener(JTextField textField){
this.textField = textField;
}
public void actionPerformed(ActionEvent e){
JRadioButton button = (JRadioButton) e.getSource();
// Set enabled based on button text (you can use whatever text you prefer)
if (button.getText().equals("Enable")){
textField.setEditable(true);
}else{
textField.setEditable(false);
}
}
}
这里是设置它的代码。
JRadioButton enableButton = new JRadioButton("Enable");
JRadioButton disableButton = new JRadioButton("Disable");
JTextField field = new JTextField();
RadioListener listener = new RadioListener(field);
enableButton.addActionListener(listener);
disableButton.addActionListener(listener);
6
这是我在这种情况下使用的解决方案。
//The text field
JTextField textField = new JTextField();
//The buttons
JRadioButton rdbtnAllowEdit = new JRadioButton();
JRadioButton rdbtnDisallowEdit = new JRadioButton();
//The Group, make sure only one button is selected at a time in the group
ButtonGroup editableGroup = new ButtonGroup();
editableGroup.add(rdbtnAllowEdit);
editableGroup.add(rdbtnDisallowEdit);
//add allow listener
rdbtnAllowEdit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setEditable(true);
}
});
//add disallow listener
rdbtnDisallowEdit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setEditable(false);
}
});
0
此问题的另一个答案。从zalpha314的答案修改一些代码。
您可以知道该按钮的文本选择了哪个单选按钮,您也可以通过操作命令了解它。在oracle的单选按钮演示代码http://docs.oracle.com/javase/tutorial/uiswing/examples/components/RadioButtonDemoProject/src/components/RadioButtonDemo.java中,我学会了如何使用动作命令。
首先,定义了两个动作命令
final static String ON = "on"
final static String OFF = "off"
然后加入行动命令按钮
JRadioButton enableButton = new JRadioButton("Enable");
enableButton.setActionCommand(ON);
JRadioButton disableButton = new JRadioButton("Disable");
disableButton.setActionCommand(OFF);
所以在的actionPerformed,你可以得到的动作命令。
public void actionPerformed(ActionEvent e){
String ac = e.getActionCommand();
if (ac.equals(ON)){
textField.setEditable(true);
}else{
textField.setEditable(false);
}
}
行动命令也许当button.getText()
是一个很长的字符串更好。
相关问题
- 1. 动作监听器下的单选按钮
- 2. 单选按钮动作监听器中的问题
- 3. 带有动作监听器的单选按钮
- 4. 无法为单选按钮调用动作监听器
- 5. 动作监听器放大按钮
- 6. 点击监听器上的单选按钮
- 7. 动作监听器在某些按钮上不起作用
- 8. 将复选框监听器放入按钮监听器
- 9. EditText上的完成按钮监听器?
- 10. 发送按钮/音量按钮动作监听器
- 11. Eclipse首选项 - 单选按钮中的多个监听器
- 12. CPP,'X'按钮监听器
- 13. 按钮和OnClick监听器
- 14. SmartGWT按钮监听器
- 15. 空按钮监听器
- 16. 动态按钮Onclick监听器
- 17. 单选按钮:XML或JAVA中的监听器?
- 18. 动作监听器
- 19. 片段的按钮监听器上的活动 - Android Studio
- 20. 通过javascript将事件监听器附加到单选按钮
- 21. 如果单选按钮检查,显示结果与监听器
- 22. Android:如何禁止单选按钮OnCheckedChangeListener监听器
- 23. JDialog的动作监听器点击按钮
- 24. Socket.io按钮监听器不工作的移动
- 25. 在java中的按钮,创建和使用动作监听器
- 26. 动态按钮上的事件监听器
- 27. OnClick监听器按钮按下状态
- 28. 如何实现事件监听器到Symfony2上的单选按钮?
- 29. 从所有按钮单击监听器上删除?
- 30. 监听单选
请参阅java教程:http://docs.oracle.com/javase/tutorial/uiswing/components/button.html和http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener。 html? – DNA
这个问题是典型的从缺乏研究 –
'JCheckbox'似乎更apropos。 – trashgod