java—如何在布局为空的面板中设置面板的大小?

wwtsj6pe  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(360)

我有一个使用空布局的主面板,我想在其中再添加三个面板,但我希望这三个面板在加载主面板时自动调整大小。我不能使用布局管理器,因为我将拖动这三个面板。
我试过这个代码,但不起作用

pnlGrid.setBounds(514,11, pnlMain.this.getWidth()/3, pnlMain.this.getHeight());

我也试过了

pnlGrid.setPreferredSize(new Dimension(pnlMain.this.getWidth()/3, pnlMain.this.getHeight()));

但还是不好。请帮忙。谢谢!

tp5buhyn

tp5buhyn1#

使用miglayout并更新 ComponentRestraints 拖动每个面板时。这样你就可以精确地控制它们的位置和界限。
例如:

MigLayout layout;

public Constructor(){
   layout = new MigLayout();
   ...
   container.setLayout(layout);
}

public void onMouseDrag(JPanel panel, int newX, int newY){
   layout.setComponentConstraints(panel, "pos " + newX + " " + newY + ", w 100%/3, h 100%");
   container.validate(); // probably not necessary
}

相关问题