2014-01-16 5 views
0

Мой вопрос инверсией этого: Is there a way to only have the OK button in a JOptionPane showInputDialog (and no CANCEL button)?Добавление кнопки отмены на мой JOptionPane

Одно решение, что было (если я правильно читать), чтобы добавить произвольное JPanel, в этом случае метка. Моя проблема в том, что мне нужен объект JComboBox в окне сообщения и (так же, как проблема Coffee_Table), когда JComboBox, похоже, удаляет кнопку отмены. Не имеет значения, если я заменил YES_NO_CANCEL_OPTION на OK_CANCEL_OPTION или QUESTION_MESSAGE.

Я все еще на стадии бессмысленного копирования знаний о семье JOptionPane, поэтому я предполагаю, что решение очевидно, и я просто этого не знаю, потому что я не видел каких-либо конкретных примеров для бессмысленной копии. (Что также означает, что как только я узнаю, как добавить кнопку отмены, мне нужно будет работать над тем, как получить доступ к пользователю. EDIT: И я не уверен, как я это сделаю, «т должен ответить, если вы не хотите)

public static void main(String[] args) { 
    int numCh1 = 1; 
    String[] moves = {"rock","paper","scissors"}; 
    JComboBox<?> optionList = new JComboBox<Object>(moves); 
    JOptionPane.showMessageDialog(
     null, 
     optionList, 
     "Player One: Choose a Move", 
     JOptionPane.YES_NO_CANCEL_OPTION 
    ); 
    numCh1 = optionList.getSelectedIndex(); 
    System.out.println(moves[numCh1]); 
} 

. Примечание: Поле со списком не является предметом переговоров (в отличие, скажем, три кнопки), потому что мой фактический проект для имитации rps101; Я просто подумал, что вам не нужно видеть все 100 ходов (или что-то еще не относящееся к этому вопросу).

+1

Просто сделать собственную модель JDialog. Это не так сложно. Затем вы можете настроить его так, как хотите. –

ответ

5

Вы используете метод showMessageDialog(), который показывает именно это: сообщение. У него нет опции отмены. Для этого используйте один из других методов.

Фактически этот последний параметр недействителен. Он не ищет тип параметра, как вы указали, он ищет тип сообщения (ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE или PLAIN_MESSAGE).

Как всегда, API является вашим лучшим другом: http://docs.oracle.com/javase/7/docs/api/javax/swing/JOptionPane.html

Смежные вопросы