Не могу отобразить собственный ComboBox в форме - Java

Узнай цену своей работы

Формулировка задачи:

Создал собственный 2-столбчатый ComboBox. Вот код:
Листинг программы
  1. public class ComboBoxDemo {
  2. private List<Country> countries;
  3. private JComboBox cBox;
  4. public ComboBoxDemo(JFrame frame) {
  5. countries = createCountryList();
  6. cBox = createComboBox(countries);
  7. frame.add(cBox);
  8. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  9. frame.pack();
  10. frame.setLocationRelativeTo(null);
  11. frame.setVisible(true);
  12. }
  13. private JComboBox createComboBox(List<Country> countries) {
  14. final JComboBox comboBox = new JComboBox(countries.toArray());
  15. comboBox.setRenderer(new ComboBoxRenderer());
  16. comboBox.addItemListener(new ItemListener() {
  17. @Override
  18. public void itemStateChanged(ItemEvent e) {
  19. if (e.getStateChange() == ItemEvent.SELECTED) {
  20. Country country = (Country) comboBox.getSelectedItem();
  21. System.out.println(country.getIso());
  22. }
  23. }
  24. });
  25. return comboBox;
  26. }
  27. private class ComboBoxRenderer extends DefaultListCellRenderer {
  28. @Override
  29. public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected,
  30. boolean cellHasFocus) {
  31. JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
  32. Country country = (Country) value;
  33. label.setText(country.getName());
  34. return label;
  35. }
  36. }
  37. private List<Country> createCountryList() {
  38. List<Country> list = new ArrayList<>();
  39. list.add(new Country("Afghanistan", "AF"));
  40. list.add(new Country("Г…land Islands", "AX"));
  41. list.add(new Country("Albania", "AL"));
  42. return list;
  43. }
  44. public class Country {
  45. private String name;
  46. private String iso;
  47. public Country(String name, String iso) {
  48. this.name = name;
  49. this.iso = iso;
  50. }
  51. public String getName() {
  52. return name;
  53. }
  54. public String getIso() {
  55. return iso;
  56. }
  57. }
  58. }
И у меня есть основной выполняемый класс, инициализирующий визуальную форму (из всех кодов я лишнее выкинул):
Листинг программы
  1. public class GUI {
  2. String RetVal1;
  3. String[][] RetValArr;
  4. private JFrame frame;
  5. private JLabel lblNewLabel;
  6. private JTextField Name_textField;
  7. private JFormattedTextField Phone_formattedTextField;
  8.  
  9. static Connection conn3 = null;
  10. static int EC1;
  11. static int CurrentEntry;
  12. static String CurrentEntrySTR;
  13. private JTextField CurrentEnty_textField;
  14. private JTable table;
  15. public static void main(String[] args) {
  16. EventQueue.invokeLater(new Runnable() {
  17. public void run() {
  18. try {
  19. GUI window = new GUI();
  20. window.frame.setVisible(true);
  21. } catch (Exception e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. });
  26. }
  27. public GUI() {
  28. initialize();
  29. }
  30. private void initialize() {
  31. frame = new JFrame();
  32. frame.setBounds(100, 100, 504, 513);
  33. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34. frame.getContentPane().setLayout(null);
  35. JComboBox From_comboBox = new JComboBox();
  36. From_comboBox.setModel(new DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5" }));
  37. From_comboBox.setEditable(true);
  38. From_comboBox.setMaximumRowCount(2);
  39. From_comboBox.setBounds(274, 194, 186, 23);
  40. frame.getContentPane().add(From_comboBox);
  41. new ComboBoxDemo(frame);
  42.  
  43. JComboBox Status_comboBox = new JComboBox();
  44. Status_comboBox.setBounds(274, 281, 186, 23);
  45. frame.getContentPane().add(Status_comboBox);
  46. CurrentEnty_textField = new JTextField();
  47. }
  48. }
Но Комбобох не появляется в форме, как я не кручу. Подскажите, что делаю не так?

Решение задачи: «Не могу отобразить собственный ComboBox в форме»

textual
Листинг программы
  1. frame.getContentPane().setLayout(null);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут