Не могу отобразить собственный ComboBox в форме - Java
Формулировка задачи:
Создал собственный 2-столбчатый ComboBox. Вот код:
И у меня есть основной выполняемый класс, инициализирующий визуальную форму (из всех кодов я лишнее выкинул):
Но Комбобох не появляется в форме, как я не кручу. Подскажите, что делаю не так?
public class ComboBoxDemo { private List<Country> countries; private JComboBox cBox; public ComboBoxDemo(JFrame frame) { countries = createCountryList(); cBox = createComboBox(countries); frame.add(cBox); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } private JComboBox createComboBox(List<Country> countries) { final JComboBox comboBox = new JComboBox(countries.toArray()); comboBox.setRenderer(new ComboBoxRenderer()); comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { Country country = (Country) comboBox.getSelectedItem(); System.out.println(country.getIso()); } } }); return comboBox; } private class ComboBoxRenderer extends DefaultListCellRenderer { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); Country country = (Country) value; label.setText(country.getName()); return label; } } private List<Country> createCountryList() { List<Country> list = new ArrayList<>(); list.add(new Country("Afghanistan", "AF")); list.add(new Country("Г…land Islands", "AX")); list.add(new Country("Albania", "AL")); return list; } public class Country { private String name; private String iso; public Country(String name, String iso) { this.name = name; this.iso = iso; } public String getName() { return name; } public String getIso() { return iso; } } }
public class GUI { String RetVal1; String[][] RetValArr; private JFrame frame; private JLabel lblNewLabel; private JTextField Name_textField; private JFormattedTextField Phone_formattedTextField; static Connection conn3 = null; static int EC1; static int CurrentEntry; static String CurrentEntrySTR; private JTextField CurrentEnty_textField; private JTable table; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { GUI window = new GUI(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public GUI() { initialize(); } private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 504, 513); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JComboBox From_comboBox = new JComboBox(); From_comboBox.setModel(new DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5" })); From_comboBox.setEditable(true); From_comboBox.setMaximumRowCount(2); From_comboBox.setBounds(274, 194, 186, 23); frame.getContentPane().add(From_comboBox); new ComboBoxDemo(frame); JComboBox Status_comboBox = new JComboBox(); Status_comboBox.setBounds(274, 281, 186, 23); frame.getContentPane().add(Status_comboBox); CurrentEnty_textField = new JTextField(); } }
Решение задачи: «Не могу отобразить собственный ComboBox в форме»
textual
Листинг программы
frame.getContentPane().setLayout(null);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д