所以我有一个无法解决的问题,我想让我的图形用户界面应用程序在3个JPanels (左、中、右)之间进行分割。我希望左边的面板和右边的面板是固定大小的,中间是流动的。这意味着侧面板仅在JFrame扩展时垂直扩展,中间面板在水平和垂直方向上扩展机器人。
我已经将所有面板的最小尺寸设置为600的高度,但它们只是停留在最小尺寸,并且不会随着JForm的增加而扩展。我不知道如何设置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);
}
}我试着将它们绑定到另一个内容面板,并将该面板作为ContentPane添加到JFrame中,从而自动将其绑定到JFrame边框,但这个问题仍然很常见。
发布于 2011-12-29 19:52:21
如果您使用的是MiGLayout,为什么不在添加组件时配置约束呢?
例如,这可能会有所帮助(尽管我也是MiGLayout初学者):
content.add(left, "growy");
content.add(center, "grow"); //the same as growx, growy
content.add(right, "growy");在某些情况下,我还需要添加一个pushx,但我不确定何时需要这样做。有关详细信息,请参阅文档。
编辑:似乎您总是必须为应该导致列/行增长的组件添加push。否则,单独的grow将使组件与它们所在的列/行一样大,而列/行中的最大组件又定义了该列/行中的最大组件。如果有更多的可用空间,如果没有push关键字,列/行将不会增长以填充它。
从文档中:
使用grow关键字,
组件永远不会将列/行的大小“推”得更大。
https://stackoverflow.com/questions/8667397
复制相似问题