質問

I have a main panel using a null layout and I want to add three more panel in it but I want those three panels to automatically resize upon loading of the main panel. I cant use layout managers since I will be dragging those three panels.

I tried this code but it doesnt work

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

I also tried

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

but still not good. Please help. Thanks!

役に立ちましたか?

解決

Use MigLayout and update the ComponentRestraints when your dragging each panel. That way you can control exactly where they are and what their bounds are.

For example:

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
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top