Как сделать JOptionPane.showConfirmDialog No, выбрали по умолчанию?

Вероятно, по той же причине, что нет никакого древовидного контейнера в повышении. Существует много способов реализовать такой контейнер, и нет никакого хорошего способа удовлетворить всех, кто использовал бы его.

Некоторые проблемы для рассмотрения:
- число детей для зафиксированного узла или переменная?
- Сколько наверху на узел? - т.е., Вы должны породить указатели, одноуровневые указатели, и т.д.
- Что алгоритмы обеспечить? - различные итераторы, алгоритмы поиска, и т.д.

В конце, проблема заканчивают тем, что были, что древовидный контейнер, который был бы достаточно полезен для всех, будет слишком тяжел для удовлетворения большинства людей, использующих его. При поиске чего-то мощного , Библиотека Графика Повышения является по существу надмножеством того, для чего можно было пользоваться древовидной библиотекой.

Вот некоторые другие универсальные древовидные реализации:
- tree.hh
Kasper Peeters - лес Adobe
- ядро:: дерево

23
задан Michael Myers 8 September 2009 в 19:21
поделиться

4 ответа

Используйте этот конструктор:

JOptionPane(Object message, int messageType, int optionType,
            Icon icon, Object[] options, Object initialValue)

где options указывает кнопки и имеет initialValue (одно из значений параметров options ) укажите значение по умолчанию.

Обновление: Вы можете вызвать showOptionDialog , а не showConfirmDialog . Первый принимает параметры options и initialValue параметры.

16
ответ дан 29 November 2019 в 01:41
поделиться

Это первое, что приходит мне в голову.

//Custom button text
Object[] options = {"Yes",
                    "No"};
JOptionPane.showOptionDialog(this, "The file " + selectedFile.getName() + 
                  " already exists. Do you want to replace the existing file?", 
                  getDialogTitle(), 
                  JOptionPane.YES_NO_OPTION, 
                  JOptionPane.WARNING_MESSAGE, 
                  null, options, options[1]);

Но, вероятно, есть подход получше.

19
ответ дан 29 November 2019 в 01:41
поделиться

Если вы не хотите жестко указывать «Да» и «Нет» (например, когда ваше приложение локализовано для других языков), вы можете использовать ресурсы UIManager:

UIManager.getString("OptionPane.yesButtonText", l)
UIManager.getString("OptionPane.noButtonText", l)
6
ответ дан 29 November 2019 в 01:41
поделиться

В приведенном выше примере это JOptionPane.showOptionDialog Эти аргументы нельзя передать в showConfirmDialog , потому что у него их нет.

Возможно, больше людей ищут это, так почему бы не предложить «рабочее» решение.

1
ответ дан 29 November 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: