Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Miglayout网格约束自定义布局_Java_Swing_Constraints_Layout Manager_Miglayout - Fatal编程技术网

Java Miglayout网格约束自定义布局

Java Miglayout网格约束自定义布局,java,swing,constraints,layout-manager,miglayout,Java,Swing,Constraints,Layout Manager,Miglayout,我是新来的,所以对我放松点。 我已经研究了所有关于miglayet的文档(顺便说一句,这很好),但是我似乎无法正确显示我想要的网格 我需要MigLayout()参数将网格设置为: 2行,即底行被拆分为两半(或者,如果您愿意的话:1个顶行与2个底列相邻)。 顶行将显示带有邻接按钮的搜索文本字段。 左下栏将显示3个按钮堆叠在一起。 右下栏将显示一个图像标签 以下是一些代码: //main window panel setup JPanel mainPanel = new JP

我是新来的,所以对我放松点。 我已经研究了所有关于miglayet的文档(顺便说一句,这很好),但是我似乎无法正确显示我想要的网格

我需要MigLayout()参数将网格设置为:

2行,即底行被拆分为两半(或者,如果您愿意的话:1个顶行与2个底列相邻)。 顶行将显示带有邻接按钮的搜索文本字段。 左下栏将显示3个按钮堆叠在一起。 右下栏将显示一个图像标签

以下是一些代码:

//main window panel setup
            JPanel mainPanel = new JPanel();
            mainWindow.add(mainPanel);
            mainPanel.setLayout(new MigLayout(""));

            //components insertion into panel (using MigLayout constraints)
            mainPanel.add(searchText);
            mainPanel.add(searchBtn, "wrap");
            mainPanel.add(addBtn);
            mainPanel.add(logoImage, "spany 3 , wrap");
            mainPanel.add(randomBtn, "wrap");
            mainPanel.add(getFileBtn);
(无法上载图像)


在这段代码中,请注意徽标被保留在searchButton下面(我认为这样做是因为布局被默认设置为网格)但是我想让它在按钮的右边和textfield/searchButton的下方安装。

首先,我想说您非常接近,您只需要处理列数和约束(加上一些缺少的组件约束)。这可以在实例化布局时完成:

MigLayout layout = new MigLayout("debug, fillx", "[][grow][]");
debug
fillx
是布局约束,分别用于启用调试功能和填充整个宽度。有关更多详细信息,请参阅

现在您可以认为需要两列,但实际上需要三列来扩展中间的一列,而第一列和最后一列继续占据尽可能小的宽度。这就是约束的含义

请考虑这个片段:

MigLayout layout = new MigLayout("debug, fillx", "[][grow][]");
JPanel content = new JPanel(layout);
// First row        
content.add(new JTextField(20), "spanx 2, growx"); // search text field
content.add(new JButton("Search"), "wrap");
// Second row
content.add(new JButton("Button # 1"), "growx");
content.add(new JLabel("Image here"), "span 2 3, grow, wrap"); // image label
content.add(new JButton("Button # 2"), "growx, wrap");
content.add(new JButton("Button # 3"), "growx, wrap");
这将产生如下结果:


请注意,在水平调整大小时,搜索文本字段和图像标签将占据最大可用宽度,而搜索按钮和按钮堆栈将占据最小可能宽度。

哦,所有编程天才,请帮助向mikael Grive(?)用于创建MigStay+1的代码片段,显示您的努力,但下次请考虑添加A替代。这将使测试您尝试过的内容变得更容易。非常感谢dic19,它真的很有帮助。欢迎:)如果这个答案对您来说足够好,那么请使用pelase@诺布雷纳