11

私は約1か月半前にMiGLayoutを使い始めましたが、すべてがシンプルでうまく機能しています。まだ修正できていない問題が1つだけあります。

右端に2つのボタンがあり、タイトルが中央に配置されている行が必要だとします。このようにすると、タイトルは実際には中央に配置されません。

(「これ」はJPanelです)

this.add(labelTitle, "split, span, center");
this.add(closeButton, "east");
this.add(mainMenuButton, "east");   

「labelTitle」は、ボタンを配置した後の残りのスペースの中央に配置されますが、実際には、残りのスペースだけでなく、JPanel全体に対して中央に配置する必要があります。

目的の効果を得るためにどのパラメーターを使用できますか?絶対測位を使用できることはわかっていますが、私の場合、そもそもMiGLayoutを使用する目的が損なわれるため、使用したくありません。

4

3 に答える 3

6

あなたが探しているこのようなものでしょうか?

乾杯!

public static void main(String[] args)
{
    JFrame frame = new JFrame();

    JPanel panel = new JPanel(new MigLayout("debug"));
    panel.add(new JLabel("Label Title"), "x2 min(b1.x - unrel, (container.w+pref)/2)");
    panel.add(new JButton("Close Button"), "id b1, pushx, alignx right");
    panel.add(new JButton("Main Menu Button"), "alignx right");

    frame.add(panel);
    frame.setSize(800, 200);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
于 2011-08-12T08:45:54.490 に答える
1

JXLayerを使用して、ボタンをガラス板に配置できます。

JButton closeButton = new JButton("Close");
JButton mainMenuButton = new JButton("Menu");
JLabel labelTitle = new JLabel("Application");

JPanel panel = new JPanel();
panel.setLayout(new MigLayout(new LC().fillX()));
panel.add(labelTitle, new CC().alignX("center").spanX());

JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new MigLayout(new LC().fillX()));
buttonPanel.add(closeButton, new CC().alignX("right").split());
buttonPanel.add(mainMenuButton, new CC().alignX("right"));
buttonPanel.setOpaque(false);

JXLayer<JPanel> mainPanel = new JXLayer<JPanel>();
mainPanel.setView(panel);
mainPanel.setGlassPane(buttonPanel);

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(mainPanel);
frame.setSize(400, 600);
frame.setVisible(true); 
于 2011-08-11T00:13:16.693 に答える
0

JPanelを作成するときは、次のMigLayout初期化子を使用します。
new MigLayout("","[]push[center]push[]","")

制約についてわからない場合は、こちらを確認してください:MigLayoutホワイトペーパー

これは、このJPanelに他に何もないことを前提としています...

于 2011-08-11T15:11:58.423 に答える