2015-11-26 4 views
0

Я не могу редактировать JComboBox в java. Хотя я установил свойство editable true, но все еще бесполезно. Когда я установил, что свойство редактируемые я не могу даже использовать или выбрать значения в раскрывающемся спискеJComboBox не может редактировать или вводить текст

JComboBox comboBoxEmployeeID = new JComboBox(); 
comboBoxEmployeeID.setModel(new DefaultComboBoxModel(new String[] {"45", "67", "78", "97"})); 
comboBoxEmployeeID.setEditable(true); 
comboBoxEmployeeID.setEnabled(true); 
comboBoxEmployeeID.setBounds(140, 13, 163, 20); 
add(comboBoxEmployeeID) 

еще одна вещь, что, когда я просто просмотреть дизайн в быстро/тестирования и предварительного I затмения Я получаю редактируемые и прекрасно работает JComboBox, но как только я отладки возникает проблема

Here is the Quickly/Test and Preview Screenshot

+0

Не используйте нулевой макет и SetBounds (...) , Swing был разработан для использования с [менеджерами макетов] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). – camickr

ответ

0

Ваша проблема может быть вызвана другой части вашего кода. Можете ли вы добавить код для всего кадра (или приложения)? Если я проверить код в вашем вопросе (с Java 8 [1.8.0_65] и IntelliJ 15), он работает отлично на моей машине:

import javax.swing.*; 

public class ComboBoxNoChange { 
    public static void main(final String[] arguments) { 
     SwingUtilities.invokeLater(() -> new ComboBoxNoChange().createAndShowGui()); 
    } 

    private void createAndShowGui() { 
     final JFrame frame = new JFrame("Stack Overflow"); 
     frame.setBounds(100, 100, 800, 600); 
     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

     final JPanel panel = new JPanel(); 
     panel.add(createComboBox(new String[]{"45", "67", "78", "97"})); 
     frame.getContentPane().add(panel); 

     frame.setVisible(true); 
    } 

    private JComboBox<String> createComboBox(String[] employeeIDs) { 
     JComboBox<String> employeeIdComboBox = new JComboBox<>(); 
     employeeIdComboBox.setModel(new DefaultComboBoxModel<>(employeeIDs)); 
     employeeIdComboBox.setEditable(true); 
     employeeIdComboBox.setEnabled(true); 
     employeeIdComboBox.setBounds(140, 13, 163, 20); 

     return employeeIdComboBox; 
    } 
} 
+0

Может ли переключение панели вызвать проблему как-то – DevX

+0

Вы имеете в виду переключение между панелями в кадре или в «JTabbedPane»? Или переключение между несколькими кадрами в приложении? Я не знаю, как это может повлиять на поле со списком. Как только он будет виден и включен, я ожидаю, что он сработает. Если вы можете добавить код для «Wrapper JFrame» на скриншот, мы могли бы воспроизвести проблему. –

+0

панель Логин имеет совершенно прекрасно работающий выпадающий, но я думаю, что его отношение к панели переключения как-то здесь, Что сделано для того 'ChangingPanel.removeAll();' ' ChangingPanel.add (updateuser),' ' updateuser. setVisible (true); ' ' repaint(); ' – DevX

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