1

コンポーネントの高さを無視するように MigLayout に指示する方法はありますか?

テスト例を次に示します。

ここに画像の説明を入力

最初の行に特大のコンポーネント (右上の「大きな」ボタン) があり、2 行目全体にほぼ三角形の JPanel があります。

最初の行のサイズを選択するときに MigLayout で「大きな」ボタンの高さを無視するようにしたいと思います。これは、2 行目のコンポーネントと重なっても問題ないことがわかっているためです。

これどうやってするの?

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);        
    }
}
4

1 に答える 1

1

おそらく、あなたが探しているのは、「spany 2」または「pos visual.x2-pref-5 5」のような絶対配置です。

MigLayout Web ページをチェックして、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");
于 2011-02-15T20:27:58.743 に答える