查看将事件侦听器添加到JComboBoxes。 我已经完成了通常的窗口等。创建了一个新的JComboBox,然后创建了.addItem()岛。 然后我尝试在我新创建的组合框上使用.addItemListener(this) 但这是一个问题,它提到了抽象类,这意味着我没有做过什么。任何人都可以看到我出错了吗?
我在单个条目上尝试了.addItemListener(this),但是没有用。我试过在构造函数的内部和外部声明JComboBox。
值得注意的是方法itemStateChange来自书中,我不得不围绕该块构建。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class ComboBoxPractice extends JFrame implements ItemListener
{
//create islands
JLabel selection = new JLabel();
JComboBox islands = new JComboBox();
public ComboBoxPractice()
{
// set a window
super("action");
setSize(300,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
// set a container
Container content = getContentPane();
FlowLayout layout = new FlowLayout();
content.setLayout(layout);
//add item listener
islands.addItemListener(this);
// add items to list
islands.addItem("Corfu");
islands.addItem("Crete");
islands.addItem("Canada");
islands.addItem("Canary Islands");
//add island and label to container
content.add(islands);
content.add(selection);
}
public void itemStateChange(ItemEvent event)
{
String choice = event.getItem().toString();
selection.setText("chose" + choice);
}
}
答案 0 :(得分:1)
@Override
public void itemStateChanged(ItemEvent event)
{
String choice = event.getItem().toString();
selection.setText("chose" + choice);
}
尝试将其更改为。顶部有@Override
。这样就不会给我带来错误并且有效。