[英]How to force a component to grow in MigLayout in Java
我有一個由各種組件組成的組件,如復選框,滑塊和一些按鈕。 我想將它添加到滾動窗格並讓滑塊增長以填充所有剩余空間。 這不是問題,因為此代碼演示了:
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JPanel c = new JPanel(new MigLayout(
"",
"[]5[]10[grow]10[]0[]0[]0[]",
"[]"
));
c.add(new JCheckBox(""));
c.add(new JLabel("Name"));
c.add(new JSlider());
c.add(new JButton("1"));
c.add(new JButton("2"));
c.add(new JButton("3"));
c.add(new JButton("4"));
f.getContentPane().add(new JScrollPane(c));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
如果您運行此並調整框架大小,滑塊將填充所有空間。 我的問題在於,我想將我的組件(帶滑塊的組件)添加到包含此組件的不同實例的另一個組件中。 因此,例如它將包含3或4個組件,滑塊一個在另一個之下。 我認為這會奏效:
public static void main(String[] args) {
JFrame f = new JFrame("Test");
JPanel c = new JPanel(new MigLayout(
"",
"[]5[]10[grow]10[]0[]0[]0[]",
"[]"
));
c.add(new JCheckBox(""));
c.add(new JLabel("Name"));
c.add(new JSlider());
c.add(new JButton("1"));
c.add(new JButton("2"));
c.add(new JButton("3"));
c.add(new JButton("4"));
JPanel a = new JPanel(new MigLayout("wrap 1"));
a.add(c);
f.getContentPane().add(new JScrollPane(a));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
但事實並非如此。 有關為什么以及如何解決它的任何想法?
嘗試將JPanel a
聲明更改為:
JPanel a = new JPanel(new MigLayout("wrap 1", "[grow,fill]"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.