Sav*_*sis 5 java layout swing miglayout
我有一个由各种组件组成的组件,如复选框,滑块和一些按钮.我想将它添加到滚动窗格并让滑块增长以填充所有剩余空间.这不是问题,因为此代码演示了:
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);
}
Run Code Online (Sandbox Code Playgroud)
如果您运行此并调整框架大小,滑块将填充所有空间.我的问题在于,我想将我的组件(带滑块的组件)添加到包含此组件的不同实例的另一个组件中.因此,例如它将包含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);
}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.有关为什么以及如何解决它的任何想法?
尝试将JPanel a声明更改为:
JPanel a = new JPanel(new MigLayout("wrap 1", "[grow,fill]"));
Run Code Online (Sandbox Code Playgroud)