Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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_Miglayout - Fatal编程技术网

Java miglayout:如何忽略零部件高度

Java miglayout:如何忽略零部件高度,java,swing,miglayout,Java,Swing,Miglayout,有没有办法告诉MigLayout忽略组件的高度 下面是一个测试示例: 我有一个超大的组件(右上角的“大”按钮)在第一行,还有一个JPanel,它有一个或多或少的三角形,横跨整个第二行 我希望MigLayout在为第一行选择尺寸时忽略“大”按钮的高度,因为我知道它可以与第二行组件重叠 我该怎么做 import java.awt.Dimension; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.

有没有办法告诉MigLayout忽略组件的高度

下面是一个测试示例:

我有一个超大的组件(右上角的“大”按钮)在第一行,还有一个JPanel,它有一个或多或少的三角形,横跨整个第二行

我希望MigLayout在为第一行选择尺寸时忽略“大”按钮的高度,因为我知道它可以与第二行组件重叠

我该怎么做

import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;

public class IgnoreComponentHeight {
    public static void main(String[] args) {
        JFrame jf = new JFrame("ignore component height test");
        JPanel p = new JPanel();

        p.setLayout(new MigLayout("","[] [] [] []", ""));
        p.add(new JButton("one"), "");
        p.add(new JButton("two"), "");
        p.add(new JButton("three"), "");
        JButton big = new JButton("big");
        big.setPreferredSize(new Dimension(40,80));
        p.add(big, "wrap");

        JPanel tripanel = new JPanel();
        tripanel.setLayout(new MigLayout("","[] [] [] []", ""));
        int k = 0;
        for (int i = 0; i < 4; ++i)
        {
            for (int j = 0; j <= i; ++j)
            {
                tripanel.add(new JButton("tri"+k), j == i ? "wrap" : "");
                ++k;
            }
        }

        p.add(tripanel, "span,wrap");

        jf.setContentPane(p);
        jf.pack();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);        
    }
}
导入java.awt.Dimension;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入net.miginfocom.swing.MigLayout;
公共类忽略组件高度{
公共静态void main(字符串[]args){
JFrame jf=新JFrame(“忽略部件高度测试”);
JPanel p=新的JPanel();
p、 setLayout(新的MigLayout(“,”[]);
p、 添加(新按钮(“一”),“”);
p、 添加(新的按钮(“两个”),“”);
p、 添加(新按钮(“三”),“”);
JButton big=新JButton(“大”);
大。设置首选尺寸(新尺寸(40,80));
p、 加上(大,“包裹”);
JPanel-tripanel=新的JPanel();
setLayout(新的MigLayout(“,”[]);
int k=0;
对于(int i=0;i<4;++i)
{

对于(int j=0;j可能您正在寻找的是“spany 2”或像“pos visual.x2-pref-5”这样的绝对定位

查看MigLayout网页并加载swing演示。然后转到绝对定位部分。您可以右键单击组件并在那里试验约束,这将帮助您了解真正需要的内容

p.add(new JButton("three"), "wrap");
JButton big = new JButton("big");
big.setPreferredSize(new Dimension(40, 80));
p.add(big, "pos visual.x2-pref-5 5");

也许你要找的是“spany 2”或像“pos visual.x2-pref-5”这样的绝对定位

查看MigLayout网页并加载swing演示。然后转到绝对定位部分。您可以右键单击组件并在那里试验约束,这将帮助您了解真正需要的内容

p.add(new JButton("three"), "wrap");
JButton big = new JButton("big");
big.setPreferredSize(new Dimension(40, 80));
p.add(big, "pos visual.x2-pref-5 5");