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