Я пытаюсь закодировать простой понг, и у меня есть панель фона, содержащая панель. Так что, конечно, мне нужно иметь возможность расположить планку по размеру и перемещать по вертикали по запросу. Теперь я просто пытаюсь поставить его в исходное положение. Если я не отключу макет, панель будет помещена в верхний центр независимо от настройки местоположения, но если я отключу макет и задаю местоположение, он просто не появится. Я не уверен, чего не хватает. Вот фрагмент кода, если это может иметь значение:Размещение JPanel в JPanel
public PongPanel() {
setLayout(null);
setPreferredSize(SIZE);
setBackground(Color.BLACK);
player_one_bar = new Bar();
add(player_one_bar);
player_one_bar.setLocation(10, getSize().height/2-3);
}
* "поставит панель на место (10,10) с шириной 20 и высотой 100 .." * ..и создать следующий 3 ошибок в этом процессе. Java GUI должны работать с разными ОС, размером экрана, разрешением экрана и т. Д. Таким образом, они не способствуют идеальной компоновке пикселей. Вместо этого используйте диспетчеры макетов или [их комбинации] (http://stackoverflow.com/a/5630271/418556), а также макет и границы для [пробела] (http://stackoverflow.com/a/17874718/ 418556). –
Я согласен с Эндрю, это «последний вариант». Вы можете установить размеры относительно ширины и высоты экрана, но у вас могут возникнуть проблемы при перемещении между различными размерами экрана. –
* «Я согласен с Эндрю, это« последнее средство ».« Нет, последнее средство »- это менеджер макетов, который по-прежнему уважает предпочтительный, самый маленький и самый большой размер дочерних компонентов. См. ['setLayout (null)' is * never * необходимо. ** Всегда! **] (https://community.oracle.com/thread/1353374?tstart=0) на форумах Oracle. Это было начато по-настоящему, и ни один аргумент не смог повлиять на меня, чтобы думать иначе. –