我正在用Java编写书店,并且在订购新书时遇到问题我希望用户选择它是电子书还是纸质书。如果是电子书,我希望在页面上显示另一个名为cboFormat
的组合框。我有一些代码,但它似乎不起作用。
这是在构造函数中。
if("Ebook".equals(cboBookType.getSelectedItem()))
{
cboFormat.enable();
}
else
{
cboFormat.disable();
}
为什么这不起作用?我之前也将格式输入设置为禁用。
答案 0 :(得分:1)
这可能是你的组合框上没有actionlistener?正如安德鲁建议的那样,可能有更多原因导致您的块不起作用。如果您粘贴了更多代码,则更容易确定问题所在。但是,如果您在组合框中缺少动作侦听器,请执行以下代码。
public void actionPerformed(ActionEvent e) {
JComboBox cboBookType = (JComboBox)e.getSource();
String bookType= (String)cboBookType.getSelectedItem();
//and paste your ifs here
if("Ebook".equals.....){
...
}
... rest of code
}
如果你不知道什么是动作监听器,它的基本接口被其他类用来监听动作事件。即用户点击按钮,或用户选择复选框等。
答案 1 :(得分:0)
不要使用启用和禁用尝试这个并且不要把它放在构造函数中,因为它不会更新你必须创建像itemchanged或itemstatechanged这样的新事件我完全不知道
if("Ebook".equals(cboBookType.getSelectedItem()))
{
cboFormat.setvisible(true);
}
else
{
cboFormat.setvisible(false);
}