Использование нулевого макета или нет в конкретном случае
Я знаю что используя null Layout
это не хороший способ сделать GUI
приложение, но я думаю, что это тот случай, когда я должен его использовать.
у меня есть JPanel
управляемый LayoutManager
и в этой JPanel есть несколько JPanels. В частности, в конкретной JPanel я должен нарисовать линии и добавить в конце этих строк некоторые JComponent
Я создал
Короче говоря, я делаю что-то вроде этого
JPanel p=new JPanel();
p.setLayout(null);
.....
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
......
g.drawLine(0,0,50,50);
JComponent s=new myJComponent();
s.setBounds(50,50,10,10);
this.add(s);
.......
}
Мой вопрос, может быть, немного философский, заключается в следующем: правильно ли использовать нулевой макет в этом конкретном контексте? Я не нашел никакой замены, потому что я добавляю свой компонент в конце строки, и эту задачу нужно выполнить в paintComponent
метод.
Заранее благодарю за советы.
1 ответ
Если у вас нет компонентов на панели, тогда иметь нулевой макет имеет смысл, у вас нет ничего к макету, поэтому нет менеджера по макету.
Однако, если вы добавляете компоненты, вы должны использовать менеджер компоновки для их размещения, даже если это означает, что вы пишете свои собственные.
То, что вы никогда не должны делать, это добавить новый компонент в paintComponent
,
Я думаю, что вы смущены, либо вы хотите переопределить paintComponent
и рисовать линии, или вы хотите добавить элементы управления, которые рисуют линии и не имеют paintComponent
переопределено на всех.