private void cancelButtonPressed() {
jPane = new JOptionPane("quit?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION, null, buttons, buttons[1]);
jPane.setName("WPane");
dialog = jPane.createDialog(jPane.getParent(), "Confirm Dialog");
dialog.setVisible(true);
dialog.dispose();
Object selectedValue = jPane.getValue();
System.out.println("selectedValue:" + selectedValue);
if(selectedValue == null)
System.out.println("selectedValue:" + selectedValue);
//return CLOSED_OPTION;
if(buttons == null) {
if(selectedValue instanceof Integer) {
//return ((Integer)selectedValue).intValue();
System.out.println("selectedValue instanceof Integer, selectedValue:" + selectedValue);
//return CLOSED_OPTION;
}
}
for(int counter = 0, maxCounter = buttons.length;
counter < maxCounter; counter++) {
if(buttons[counter].equals(selectedValue)){
System.out.println("buttons[counter].equals(selectedValue) selectedValue:" + selectedValue);
//return counter;
}
}
//return CLOSED_OPTION;
}
在構造函數中我設置按鈕的名稱:我只從null得到:Object selectedValue = jPane.getValue(); (jPane =新的JOptionPane(...)
buttons[0]= new JButton("Yes");
buttons[1]= new JButton("No");
buttons[0].setName("Yes_Next_Btn");
buttons[1].setName("No_Back_Btn");
的問題是,我需要setNames
的組件:JOptionPane
,和所以我不使用:JOptionPane.showConfirmDialog
。
而在這種情況下: 當我點擊按鈕(是,否)我沒有得到任何價值,只有當我點擊「X」 ,出口我得到null
。
你可以,或者,使用'#的JOptionPane的setValue'動作監聽器裏面,而不是維護另一個狀態變量 – MadProgrammer
@MadProgrammer的,沒注意到那。謝謝。 – predi