1
A
回答
1
如果按钮有对组合框的引用,那么按钮可以在组合框中注册一个动作监听器,您可以在其中更改按钮的状态。
final JButton button = new JButton();
final JComboBox comboBox = new JComboBox();
comboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final ActionEvent event) {
// Your logic to determine when to enable/disable:
final boolean enabled = comboBox.getSelectedIndex() == 0;
button.setEnabled(enabled);
}
});
1
的JButton
可以简单地添加在JComboBox
自己的ActionListener
并在ActionListener
然后你可以根据组合框的选择项改变JButton
的状态。
2
组合框不需要知道按钮。你需要一个监听器添加到组合框的事件是这样的:
public class ComboBoxDemo ... implements ActionListener {
. . .
petList.addActionListener(this) {
. . .
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String petName = (String)cb.getSelectedItem();
yourButton.setEnabled(true/false);
}
. . .
}
1
我以前写的代码启用或禁用按钮取决于填充文本框,然后选择一个组合框的项目汇集的地方。这里可能会有所帮助。
jComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jComboBoxActionPerformed(e);
}
});
...
jTextField.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
jTextFieldDocumentListener(e);
}
public void removeUpdate(DocumentEvent e) {
jTextFieldDocumentListener(e);
}
public void changedUpdate(DocumentEvent e) {
jTextFieldDocumentListener(e);
}
});
jTextField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jTextFieldActionPerformed(e);
}
});
...
private void jComboBoxActionPerformed(ActionEvent e){
if(jComboBox.getSelectedIndex() == -1)
jButton.setEnabled(false);
else if(!jTextField.getText().equals(""))
jButton.setEnabled(true);
}
private void jTextFieldDocumentListener(DocumentEvent e){
if(jTextField.getText().equals("") || jComboBox.getSelectedIndex() == -1){
jButton.setEnabled(false);
}
else{
jButton.setEnabled(true);
}
}
private void jTextFieldActionPerformed(ActionEvent e){
if(jTextField.getText().equals("")){
jButton.setEnabled(false);
}
if(!(jTextField.getText().equals(""))){
jButton.setEnabled(true);
}
}
如果选择组合框和文本字段被填满,则该按钮将被启用。否则它不会被启用。
相关问题
- 1. Java启用/禁用按钮
- 2. Java Swing:启用/禁用JPanel中的所有组件
- 3. 按钮进入组合框弹出菜单项的Java Swing
- 4. 启用/禁用对话框按钮android
- 5. Swing:启用延迟按钮
- 6. Java - 根据单选按钮启用组合框
- 7. Multibinding与组合框按钮
- 8. 组合框按钮,文本框的Java
- 9. javascript启用和禁用组合框
- 10. 启用/禁用Excel 2007组合框
- 11. 启用/禁用MGWT按钮
- 12. 启用/禁用按钮
- 13. 按钮禁用和启用
- 14. 按钮 - 启用和禁用
- 15. 启用和禁用按钮
- 16. 禁用/启用按钮
- 17. 禁用和启用按钮
- 18. 启用/禁用AWT按钮
- 19. 禁用/启用按钮
- 20. 在Swing中禁用GUI上的按钮
- 21. 如何启用和禁用单选按钮,复选框与JQ
- 22. 启用向导完成按钮上禁用的所有按钮
- 23. 如何使用单选按钮禁用组合框(javascript)
- 24. 启用和禁用复选框未禁用按钮
- 25. 的Java Swing按钮
- 26. 禁用java JFace对话框中的关闭按钮?
- 27. 与ios组合框的绘制按钮
- 28. ExtJS 3.3.0禁用保存按钮,直到组合框值
- 29. 当单选按钮被选中时,组合框未被禁用
- 30. 获取Java swing中的组合框值
将情景视图(又名:让按钮有对组合的引用)是不好的做法。相反,使用JButton设置的Action来解耦:组合框选择更改的监听器知道该Action,并根据需要切换其启用。内部关心如何相应地更新按钮。 – kleopatra