2013-04-30 1 views
-1

У меня есть следующий код, но я продолжаю получать ошибки.Выбранный элемент в combobox будет notadd в текстовое поле?

void является недопустимым типом для переменной itemStateChanged Это сообщение об ошибке, но когда я беру пустоту, я получаю синтаксические ошибки.

Может кто-нибудь исправить код.

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

Вы пытаетесь определить метод в методе, я уверен, что это может» t сделать ... – MadProgrammer

+0

Хорошо. Хорошо, где я объявлю второй метод, чтобы заставить его работать? –

+0

кажется неоднозначным –

ответ

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? –

+0

Уведомление 'public void itemStateChanged' –

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

+0

@mKorbel +1 для' requestFocusInWindow' – MadProgrammer

+0

Я очень хорошо помню ваши уроки – mKorbel

Смежные вопросы