使用自定义JOptionPane按钮? int deferenced error?

时间:2012-10-15 21:19:01

标签: java swing joptionpane

如果这听起来像是一个愚蠢的问题,我很抱歉,但我在JOptionPane的自定义按钮上到处搜索。我遇到了如何实现特殊按钮,但我似乎无法在我的程序中使用它。

    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不能被引用”。我认为我使用了错误的比较但是我该如何修复呢?

1 个答案:

答案 0 :(得分:6)

你看起来试图取消引用一个int,你试图在int上选择一个方法,选择,你就是不能用Java做到这一点。为什么不简单地在门阵列中使用选择? doors[choice]

// first check that the JOptionPane wasn't closed by the user
if (choice != JOptionPane.CLOSED_OPTION) {
  String chosenDoor = doors[choice];
}

或测试选择,因为您正在使用它作为数字作为int测试汽车。