Я изначально создал объект JLabel
и добавил его в JFrame
, но контент не показывался. Я нашел сообщение на stackoverflow
, используя контейнер для отображения JLabel
на JFrame
. Я тоже пробовал, но даже это не сработало. Я прошел через много сообщений, но я не мог найти никакого решения. Кнопка отображается, но Jlabel не может быть видно!JLabel не появляется?
Dimension s=new Dimension(400,400);
JFrame l=new JFrame();
l.setSize(s);
l.setResizable(true);
Dimension s1=new Dimension(100,100);
Container me=new Container();
JLabel kingsman=new JLabel ("kingsman");
me.add(kingsman);
l.add(me);
JButton p=new JButton("Goal");
p.setSize(s1);
l.add(p);
//l.pack();
l.setVisible(true);
Существует еще один problem.When я называю pack()
функцию, Jframe
становится сводится к небольшому окну вместо измерения, которое я упомянул. Пожалуйста, помогите!
Что произойдет, если я непосредственно добавлю Jlabel к кадру без использования контейнера? –
@MathewsMathai Ничего (или более того, то же самое), 'JFrame' является контейнером (на самом деле у него есть' JRootPane', у которого есть 'contentPane', и он добавляет к нему что-то) – MadProgrammer
Если вы хотите добавьте непосредственно к фрейму, вам придется применить некоторые позиционные ограничения. Как указано, используемый «LayoutManager» является «BorderLayout», поэтому вместо вызова «frame.add (label)» и «frame.add (button)» вы можете сделать «frame.add (label, BorderLayout.NORTH) 'и' frame.add (кнопка, BorderLayout.CENTRE) '. С точки зрения дизайна я бы предложил использовать JPanel с соответствующим 'LayoutManager' для вашего контента, а затем добавить панель в фрейм. – PA001