4
对不起,如果这听起来像一个愚蠢的问题,但我在JOptionPane自定义按钮上搜索到处。我遇到了如何实现特殊按钮,但我似乎无法在我的程序中使用它。使用自定义JOptionPane按钮? int引用错误?
int choice;
Object[] doors = { "Door 1", "Door 2", "Door 3" };
JFrame frame = new JFrame();
input = "Which door do you choose?";
choice = JOptionPane.showOptionDialog(frame, input,
"Doors",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
doors,
doors[2]);
if (car == 1 && choice.equals(doors[0])) {
open = 3; option = 2;
}
if (car == 1 && choice.equals(doors[1])) {
open = 3; option = 1;
}
if (car == 1 && choice.equals(doors[2])) {
open = 2; option = 1;
}
if (car == 2 && choice.equals(doors[0])) {
open = 3; option = 2;
}
if (car == 2 && choice.equals(doors[1])) {
open = 1; option = 3;
}
if (car == 2 && choice.equals(doors[2])) {
open = 1; option = 2;
}
if (car == 3 && choice.equals(doors[0])) {
open = 2; option = 3;
}
if (car == 3 && choice.equals(doors[1])) {
open = 1; option = 3;
}
if (car == 3 && choice.equals(doors[2])) {
open = 2; option = 1;
}
注:这不是我的整个程序有问题的方面
在对话框中的选项显示完美,只是有错,说:“INT不能deferenced”。我认为我使用了错误的比较,但是我该如何解决?
'choice'可以是0,1,2和-1在你的情况下。所以你应该在使用门[选择]之前测试它的值,因为如果选择== -1(用户关闭对话框),门[选择]将引发异常('ArrayIndexOutOfBoundsException')。值0,1,2然后对应于门阵列中的索引。因此,门[0]例如将返回“门1”。 – florian