2013-04-30 27 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

相關問題