私は解決できない問題があります。私は私のGUIアプリケーションを3つのJPanels(左、中央、右)に分割したいと思っています。私は左のパネルと右のパネルが固定されたサイズであり、中央が流体になるようにしたい。意味のあるサイドパネルは、JFrameが展開され、中央パネルがボットを水平方向および垂直方向に展開するので、垂直方向にのみ展開されます。Java - MigLayout境界を設定する
すべてのパネルの高さが600になるように最小サイズを設定しましたが、JFrameの境界線をどのように設定するか分かりません。
package ppe.view;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import net.miginfocom.swing.MigLayout;
public class UI_View extends JFrame
{
private JList browse = new JList();
private JScrollPane rightX = new JScrollPane();
private JButton btn1 = new JButton("Button 1");
private JButton btn2 = new JButton("Button 2");
private JButton btn3 = new JButton("Button 3");
private JButton btn4 = new JButton("Button 4");
public UI_View()
{
this.setTitle("Prototype MVC Arhitecture");
this.setMinimumSize(new Dimension(800, 600));
this.setExtendedState(this.MAXIMIZED_BOTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new MigLayout());
JPanel content = new JPanel(new MigLayout());
content.setBackground(Color.black);
JPanel right = new JPanel(new MigLayout());
JPanel center = new JPanel(new MigLayout());
JPanel left = new JPanel(new MigLayout());
right.setBackground(Color.red);
right.setMinimumSize(new Dimension(200, 600));
right.setMaximumSize(new Dimension(200, 37500));
center.setBackground(Color.green);
center.setMinimumSize(new Dimension(400, 600));
left.setBackground(Color.blue);
left.setMinimumSize(new Dimension(200, 600));
left.setMaximumSize(new Dimension(200, 37500));
content.add(left);
content.add(center);
content.add(right);
this.setContentPane(content);
}
public static void main(String[] args)
{
new UI_View().setVisible(true);
}
}
私は別のコンテンツパネルにそれらの境界と、自動的にJFrameの境界に境界を定めるが、事はまだ固定はかなりあるのJFrameにCONTENTPANEとしてそのパネルを追加しようと試みてきました。
助けてくれてありがとうございました。私は制約を拡大するために調べましたが、助けてくれないようです。 –
@kellax、 ''デバッグ ''パラメータを使って' 'MiGLayout'を作成してペイントされた枠線を見てみましょう。さらに、センターパネルに '' grow、pushx "'を追加してみてください。 – Thomas
これはうまく動くようになりました。左右のサイズと中心が固定されています。私はこれを次のように定義しなければならなかった:サイドパネル.add(panel、 "growy、pushy")とcenter "grow、pushx" "psuhxまたはpushy"は、スペースをいっぱいにしたい場合は、方向を広げてください。 –