gpt4 book ai didi

Java Swing-MigLayout : Docking a component in center isn't fully centering

转载 作者:行者123 更新时间:2023-12-05 03:31:57 25 4
gpt4 key购买 nike

我正在尝试使用 MiGFormat 设计一个面板,该面板顶部有一个标签,底部有两个按钮 - 是/否提示。

我很接近地实现了这一点,但是标签 yesOrNoText(文本是​​“TEST”)没有完全居中:enter image description here

我像这样初始化包含此提示的面板:

private JPanel createYesNoPrompt() {
JPanel panel = new JPanel(new MigLayout());
panel.setBorder(BorderFactory.createLineBorder(Color.red));
JButton yesButton = new JButton("Yes");
JButton noButton = new JButton("No");
yesOrNoText = new JLabel();
yesOrNoText.setText("TEST");
yesOrNoText.setFont(panel.getFont().deriveFont(Font.BOLD, 30f));
yesOrNoText.setHorizontalAlignment(SwingConstants.CENTER);
Dimension dimension = new Dimension(500, 125);
Font font = panel.getFont().deriveFont(Font.BOLD, 20f);
yesButton.setFont(font);
yesButton.setBackground(new Color(35, 138, 35));
yesButton.setPreferredSize(dimension);
noButton.setFont(font);
noButton.setBackground(new Color(183, 19, 19));
noButton.setPreferredSize(dimension);
yesButton.addActionListener(e -> isYes = true);
noButton.addActionListener(e -> isYes = false);
panel.add(yesOrNoText, "wrap, dock center");
panel.add(yesButton);
panel.add(noButton);
return panel;
}

然后,我将它添加到 gamePanel,然后将 gamePanel 添加到 mainPanel,然后将 mainPanel 添加到框架。

gamePanel.add(YesOrNoPanel, "align center");
mainPanel.add(gamePanel);
add(mainPanel);

我不确定是什么导致 yesOrNoText 没有在 YesNoPanel 中完全居中。如果我需要澄清任何事情,请告诉我!谢谢。

最佳答案

我需要对 yesNo 标签跨 2 个单元格进行添加调用。通过在第一行添加一个组件,然后在下一行添加两个组件,我基本上创建了一个 2x2 网格。

panel.add(yesOrNoText, "wrap, align center, span 2 1");
panel.add(yesButton);
panel.add(noButton);

请注意,我在第一个组件上添加了 yesOrNoText,我使用 span 告诉 MiGFormat 为该组件占用两个单元格。然后我可以将其与其余两个组件居中,因为它成为行中唯一的组件。

关于Java Swing-MigLayout : Docking a component in center isn't fully centering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70553334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com