2017-02-21 47 views
-2

Это делает рамку с jbutton, имеющую размер, равный фрейму, и ярлык не попадает на место, которое я хотел.JButton получает размер, равный Jframe при добавлении нескольких компонентов

public class Try extends JFrame { 
    public Try(){ 
     JFrame f = new JFrame("TRY"); 
     JButton btn = new JButton(HI); 
     JLabel l = new JLabel("label"); 
     btn.setBounds(50,100,100,50); 
     l.setBounds(50,0,100,100); 
     f.add(btn); 
     f.add(l);***strong text*** 
     f.setSize(500,500); 
     f.setVisible(true); 
     f.getContentPane().setBackground(Color.white); 
    } 

    public static void main(String[] args){ 
     Try t = new Try(); 
    } 
} 
+1

вам нужно попытаться использовать с Layout Manager https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Jerry06

+0

Обеспечение ASCII искусство или простой рисунок * предполагаемого * макета GUI при минимальном размере, и при изменении размера, с большей шириной и высотой. (С помощью кнопки и метки, расположенной на этих границах, в графическом интерфейсе есть ** много ** лишнего места, что говорит о том, что в конечном итоге будет больше компонентов. Покажите эти дополнительные компоненты.) –

+0

Отступ исправлен – stealthjong

ответ

-1

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

f.setLayout(null); 

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

+2

* «Попробуйте null макет, если вы хотите .. "* .. заработайте много денег для поддержки кода с ошибкой (или хотите, чтобы вас уволили). Java GUI должны работать с различными ОС, размером экрана, разрешением экрана и т. Д., Используя разные PLAF в разных локалях. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –

+0

Я все еще изучаю Java в UNI, поэтому мои ответы могут быть не идеальными, просто стараюсь помочь как можно больше. Спасибо, что исправил меня, запомнит это в будущем. – Helvijs

+2

* «.. просто пытаюсь помочь, насколько я могу». Лучшая помощь, которую вы могли бы дать на вашем нынешнем уровне опыта, - это прочитать ответы людей, которые знают макет Swing лучше, чем вы (и воздерживаться от ответа). * «НО ПОМНИТЬ, ЧТО ..» * Пожалуйста, прекратите ОТКРЫТИЕ у нас. Для ** bold ** используйте '** bold **' или для * italic * используйте '* italic *'. –