2015-09-28 4 views
0

Вот некоторые из моих кодов. Следует отметить, что это не мой точный код, поскольку у меня было намного больше добавлено, но длинный рассказ короткий, я могу гарантировать, что ни один из элементов управления не прикасается друг к другу и что все они добавлены в этот кадр. Где же моя проблема. Следует отметить, что я не очень опытен с этим и, как таковой, нуждаюсь в конкретной помощи. Я не понимаю, почему это вызывает у меня проблемы, такие как кнопки, слишком большие и неуместные, но мне они нужны в точном месте, которое я указываю в точном размере, и никогда не исчезаю или не мерцаю. Что я могу сделать?Элементы управления продолжают исчезать из моего JFrame, нет JPanes или чего-либо, что нужно нарисовать.

public class TesterFrame extends JFrame{ 
    public TesterFrame(){ 
     setSize(500,500); 
     JButton jb = new JButton("Button"); 
     jb.setLocation(100, 100); 
     jb.setSize(20,20); 
     JCheckBox jcb = new JCheckBox("CheckBox"); 
     jcb.setLocation(20,20); 
     jcb.setSize(30,30); 
     add(jb); add(jcb); 
     JButton jb2=new JButton("BUTTON"); 
     jb2.setLocation(60,60); 
     jb2.setSize(30,30); 
     add(jb2); 
     setVisible(true); 
    } 
} 
+0

вы не можете компоненты позиции, как это в макет границы (расположение по умолчанию). –

ответ

1

JFrame использует BorderLayout по умолчанию, что позволит только один компонент будет положение в любой из его пяти доступных слотов.

Вы в основном добавляете все компоненты в положение BorderLayout.CENTER, но на самом деле выкладывается только последний.

См How to Use BorderLayout для более подробной информации

Попробуйте позвонить setLayout(new FlowLayout());, прежде чем начать добавление компонентов.

Посмотрите на Laying Out Components Within a Container для получения более подробной информации, а также список других менеджеров компоновки, которые помогут вам