gpt4 book ai didi

java - JOptionPane.showOptionDialog 返回错误值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:02 24 4
gpt4 key购买 nike

我得到了以下java代码

 Icon icoR = new ImageIcon("src/resources/Republica.png");
Icon icoI = new ImageIcon("src/resources/Imperio.png");
JButton botRep = new JButton("Jedi", icoR);
JButton botImp = new JButton("Sith", icoI);
Object[] options = {botRep, botImp};
//Object[] options = {"Jedi","Sith"};
int i = JOptionPane.showOptionDialog(
null,
"Question","Title",
JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE,
null,options,options[0]);
System.out.println(i);

我正在尝试使用图标按钮从选项对话框中检索选定的值。问题是,虽然对话框和按钮本身都正确显示,但每当单击按钮时...什么也没有发生,并且 println 语句也不会执行...直到我单击 X 关闭对话框,并且无论我之前单击了什么...都会打印 1 作为结果。奇怪的是,如果我将选项数组更改为代码中注释的常规(仅文本)数组,则对话框的行为就像预期返回所选选项的从 0 开始的索引一样。关于这里可能出什么问题的任何提示吗?提前致谢

最佳答案

如果您只传递图标,选项 Pane 将为您创建按钮:

Object[] options = {icoR, icoI};

所以我想如果您传递按钮,它就假定您将自己处理选项 Pane 的关闭。

作为解决方法,您可以使用 Compound Icon类来创建包含文本和图像的图标。

您可能还想使用文本图标,您也可以从上面的链接找到它。当您创建 TextIcon 时,您可能需要使用:

setFont( UIManager.getFont("Button.font") );

TextIcon的字体设置为与按钮相同。

关于java - JOptionPane.showOptionDialog 返回错误值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23841361/

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