1

Null レイアウトを使用するメイン パネルがあり、そこにさらに 3 つのパネルを追加したいのですが、メイン パネルの読み込み時にこれらの 3 つのパネルのサイズを自動的に変更したいと考えています。これらの 3 つのパネルをドラッグするので、レイアウト マネージャーを使用できません。

このコードを試しましたが、うまくいきません

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

私も試しました

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

しかし、まだ良くありません。助けてください。ありがとう!

4

1 に答える 1

2

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
}
于 2012-08-25T16:27:15.757 に答える