Java JCombobox вызывает проблемы рендеринга - PullRequest
0 голосов
/ 29 ноября 2011

Здравствуйте, у меня следующая проблема:

public class TestCombo extends JFrame{

    public TestCombo() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(200,200);
        setVisible(true);

        setLayout(new BorderLayout());
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2,4));

        JLabel l1 = new JLabel("test1");
        JLabel l2 = new JLabel("test2");

        panel.add(l1);
        panel.add(l2);

//      JComboBox<String> combo = new JComboBox<String>();// <-- uncomment this for the problem

        this.add(panel, BorderLayout.NORTH);
    }

    public static void main(String[] args) {
        new TestCombo();
    }

}

Как видите, я делаю очень простой пример.Если я раскомментирую отмеченную часть, метки не будут показаны.Если я изменю размеры окна, они снова видны.Странно то, что я даже не добавляю combo на панель или где-либо еще.Я просто создаю это.Может кто-нибудь сказать мне, почему мне нужно изменить размер рамки, чтобы увидеть метки?Я что-то не так делаю?

Ответы [ 2 ]

5 голосов
/ 29 ноября 2011

вы делаете setVisible(true) в самом начале.

Вы должны сделать это после добавления всех компонентов.

1 голос
/ 29 ноября 2011

Я не думаю, что это правильный синтаксис для JComboBox

JComboBox<String> combo = new JComboBox<String>();

должно быть

JComboBox combo = new JComboBox();

Также setVisible(true); должно быть после this.add(panel, BorderLayout.NORTH);.


Как использовать comboBox

...