2013-04-30 28 views
-1

我有下面的代码,但我不断收到错误。组合框中的选定项目不会添加到文本框?

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); 
+3

您正在尝试的方法中定义的方法,我敢肯定,这可以”不要做... – MadProgrammer 2013-04-30 09:47:07

+0

好的。那么我会在哪里声明第二种方法,然后使其工作? – 2013-04-30 09:47:58

+0

似乎不明确 – 2013-04-30 09:49:04

回答

1
public void actionPerformed(ActionEvent event) { //Method declaration 
    procedure = (String) combobox.getSelectedItem(); 

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

你宣布的另一种方法中的一个方法。 Java语法不允许这样做。如果你试图监控ComboBox内的状态更改为项目使用ItemListener

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(); 
       } 
      } 
     } 
}); 
+0

立即获取以下错误消息:无法减少从ItemListener继承的方法的可见性? – 2013-04-30 09:53:46

+0

注意'public void itemStateChanged' – 2013-04-30 09:54:51

1

你声明的方法中的一个方法,这个不能做。

取决于你正在尝试做的,你实际上并不需要它...

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); 
+1

+1 textField_9.setText(textField_9.getText()); textField_9.selectAll; textField_9.'requestFocusInWindow()' – mKorbel 2013-04-30 10:00:20

+0

@mKorbel +1 for'requestFocusInWindow' – MadProgrammer 2013-04-30 10:02:39

+0

我非常记得你的课程 – mKorbel 2013-04-30 10:04:22

相关问题