Java 组合框中的选定项不会添加到文本字段?

Java 组合框中的选定项不会添加到文本字段?,java,swing,actionlistener,jcombobox,itemlistener,Java,Swing,Actionlistener,Jcombobox,Itemlistener,我有下面的代码,但我不断得到错误 void是变量itemStateChanged的无效类型 这是错误消息,但当我取出void时,会出现语法错误 有人能修好密码吗 final JComboBox combobox = new JComboBox(procedurelist); combobox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { p

我有下面的代码,但我不断得到错误

void是变量itemStateChanged的无效类型 这是错误消息,但当我取出void时,会出现语法错误

有人能修好密码吗

final JComboBox combobox = new JComboBox(procedurelist);
combobox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        procedure = (String) combobox.getSelectedItem();

        private void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED) {
                if("Focus".equals(e.getItem())) {
                    textField_9.requestFocus();
                }
            }
        }
    }

});
combobox.setBounds(68, 216, 86, 20);
contentPane.add(combobox);
您可以在另一个方法中声明一个方法。Java语法不允许这样做。如果您试图监视
组合框中项目的状态更改
,请使用
项目侦听器

final JComboBox combobox = new JComboBox(procedurelist);
combobox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        procedure = (String) combobox.getSelectedItem();
    }
});

combobox.addItemListener(new ItemListener(){

        public void itemStateChanged(ItemEvent e) {
            if(e.getStateChange() == ItemEvent.SELECTED) {
                if("Focus".equals(e.getItem())) {
                    textField_9.requestFocus();
                }
            }
        }
});

您正在方法中声明一个方法,这无法完成

根据你想做什么,你实际上不需要它

final JComboBox combobox = new JComboBox(procedurelist);
combobox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        procedure = (String) combobox.getSelectedItem();

        if("Focus".equals(procedure)) {
            // Set text??
            textField_9.requestFocusInWindow();
            // Select all..
        }
    }

});
// Bad idea, learn to use layout managers
//combobox.setBounds(68, 216, 86, 20);
contentPane.add(combobox);

你试图在一个方法中定义一个方法,我很确定这是不可能的…好的。那么我要在哪里声明第二种方法才能使它起作用呢?从技术上来说,如果我不使用该方法,则组合框中的选定项将永远不会添加到文本字段,除非有其他方法将其添加到文本字段。现在获取以下错误消息:无法降低ItemListener继承方法的可见性?注意
public void itemStateChanged
+1textField_9.setText(textField_9.getText());textField_9.选择全部;textField_9.
requestFocusInWindow()
@mKorbel+1代表
requestFocusInWindow
我很清楚地记得你的课程
final JComboBox combobox = new JComboBox(procedurelist);
combobox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent event) {
        procedure = (String) combobox.getSelectedItem();

        if("Focus".equals(procedure)) {
            // Set text??
            textField_9.requestFocusInWindow();
            // Select all..
        }
    }

});
// Bad idea, learn to use layout managers
//combobox.setBounds(68, 216, 86, 20);
contentPane.add(combobox);