Использование нулевого макета или нет в конкретном случае

Я знаю что используя 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 переопределено на всех.

Другие вопросы по тегам