2016-03-23 2 views
2

У меня есть этот код:я не могу видеть Качели JSeparator

JPanel jpMainExample = new JPanel(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); 
    jpMainExample.add(new JLabel("JLabel")); 
    jpMainExample.add(new JTextField("JTextField")); 
    jpMainExample.add(new JSeparator(JSeparator.VERTICAL)); 
    jpMainExample.add(new JRadioButton("JRadioButton")); 
    jpMainExample.add(new JSeparator(SwingConstants.VERTICAL)); 
    jpMainExample.add(new JComboBox<>(new String[] {"JComboBox"})); 
    jpOUT.add(jpMainExample); 

Но, я не могу видеть разделитель.

enter image description here

Что не так?

+2

Взгляните на http://stackoverflow.com/questions/2425729/jseparator-wont-show-with-gridbaglayout. Он обращается к другому макету, но может помочь. – bradimus

+0

* «Я не вижу разделителя». * В некоторых PLAF разделитель невидим (но все еще занимает пробел). Как размещение компонентов появляется без разделителей? –

+1

Почему ни один из [ваших предыдущих вопросов] (http://stackoverflow.com/users/5113188/qa-col) не имеет ответа на [принятый] (http://meta.stackexchange.com/a/5235/155831) ? –

ответ

4

Предпочтительный размер разделителя (2, 0). FlowLayout соответствует предпочтительным размерам. Поскольку высота равна 0, рисовать нечего.

Поэтому вам нужно использовать другой менеджер макетов, который изменит размер компонента, чтобы заполнить пространство, доступное по вертикали.

Ознакомьтесь с разделом учебника Swing от How to Use Separators для рабочего примера. В нем показано, как использовать BoxLayout.