簡體   English   中英

如何在Java中強制組件在MigLayout中增長

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM