在特定情况下使用null布局或不使用null布局



我知道使用null Layout不是一个很好的方法来制作GUI应用程序,但我认为这是一个我应该使用它的情况。

我有一个由LayoutManager管理的JPanel,在这个JPanel中有几个JPanel。特别是,在特定的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);
    .......
}

我的问题,也许有点哲学,是这样的:在这个特定的上下文中使用null布局正确吗?我没有找到任何替代品,因为我在行尾添加了我的组件,这个任务必须在paintComponent方法中完成。

提前感谢你的提示

如果你的面板中没有组件,那么null布局是有意义的,你没有什么布局,所以没有布局管理器。

如果你要添加组件,那么你应该使用布局管理器来布局它们,即使这意味着你要自己编写。

你绝对不应该在paintComponent中添加一个新组件。

我认为你很困惑,要么你想覆盖paintComponent并绘制线条,要么你想添加绘制线条的控件,而不是覆盖paintComponent

最新更新