gpt4 book ai didi

java - 如何使用 JDialogs 在 JOptionPane 上垂直堆叠按钮?

转载 作者:搜寻专家 更新时间:2023-11-01 01:24:15 25 4
gpt4 key购买 nike

我正在尝试使用 createDialog 将三个按钮垂直堆叠到 JOptionPane 上,但它不适用于 GridLayout。另外,我也不确定如何摆脱“确定”按钮。您可能想知道为什么我要这样做,但这是我被告知要这样做的方式。我想我可以使用 JFrame,但我认为 JOptionPane 不太适合,因为这是我希望按钮堆叠的地方。

应该是这样的:
|需要帮助 |
|帮帮我 |
|计数 |

在某些时候我需要可访问性来添加 Action 监听器,但在我到达那一点之前这似乎变得令人费解。

import java.awt.Container;
import java.awt.GridLayout;

import javax.swing.*;
public class ThreeButtons {

static JDialog dialog;
public static void main(String[] args) {

JOptionPane optionPane = new JOptionPane();
optionPane.setMessage("Set Message");
optionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);
optionPane.setLayout(new GridLayout(3,1));
String[] buttonTxt = {"Need Help","Help Me","Counting"};
JButton[] buttons = new JButton[buttonTxt.length];
for (int i = 0; i < buttonTxt.length; i++)
{
buttons[i] = new JButton(buttonTxt[i]);
optionPane.add(buttons[i]);
}
dialog = optionPane.createDialog(null, "Icon/Text Button");
dialog.setVisible(true);

}

}

最佳答案

如果你想堆叠按钮,你需要将它们添加到面板并将面板添加到选项 Pane ,如下所示:

    JDialog dialog = null;
JOptionPane optionPane = new JOptionPane();
optionPane.setMessage("Set Message");
optionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);

JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,1));
String[] buttonTxt = {"Need Help","Help Me","Counting"};
JButton[] buttons = new JButton[buttonTxt.length];
for (int i = 0; i < buttonTxt.length; i++)
{
buttons[i] = new JButton(buttonTxt[i]);
panel.add(buttons[i]);
}
optionPane.setOptionType(JOptionPane.DEFAULT_OPTION);
optionPane.add(panel);
dialog = optionPane.createDialog(null, "Icon/Text Button");
dialog.setVisible(true);

除了手动浏览 JOptionPane 的内容并将其删除之外,我不确定如何摆脱 OK 按钮。您始终可以创建自己的 JDialog,然后您就可以完全控制,但是获得漂亮的选择面板图标需要做更多的工作:)

关于java - 如何使用 JDialogs 在 JOptionPane 上垂直堆叠按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2205584/

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