JLabel setLocation не работает? - PullRequest
       11

JLabel setLocation не работает?

1 голос
/ 01 сентября 2011

Вот код, который я написал:

super("Add contact");

setLayout(new FlowLayout());
IPAddress = new JLabel("IP Address");
IPAddress.setLocation(1000, 100);

ImageIcon ii=new ImageIcon(getClass().getResource("Add.png"));
JLabel image = new JLabel(ii);
image.setSize(100, 100);
image.setLocation(500, 100);
add(image);
add(IPAddress);
setSize(500,150);
}

1 Ответ

7 голосов
/ 01 сентября 2011

Это правильно.Менеджер по расположению отвечает за установку местоположения компонента на основе правил менеджера по расположению.Так что в вашем случае FlowLayout переопределит местоположение компонента.

Вы никогда не должны жестко задавать местоположение компонента.Что если кто-то использует разрешение менее 1024 X 768?Компонент никогда не будет отображаться.

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

Прочтите Менеджеры макетов и используйте соответствующий менеджер макетов или комбинацию менеджеров макетов для достиженияжелаемый макет.

...