Я научился создавать всплывающее диалоговое окно с помощью NotifyDescriptor. Я разработал JPanel с двумя большими кнопками, которые читаются как PURCHASE
и CASHOUT
, а код, который я использовал, показывает еще две кнопки внизу, которые читаются как Yes
и No
. Я не хочу, чтобы NotifyDescriptor размещал на экране свои собственные кнопки. Я просто хочу, чтобы мои кнопки были там, и всплывающее окно закрывалось и сохраняло значение при нажатии одной из моих пользовательских кнопок (точно так же, как оно закрывает окно при нажатии yes
или no
). Код, который я использую, выглядит следующим образом
// Create instance of your panel, extends JPanel... ChooseTransactionType popupSelector = new ChooseTransactionType(); // Create a custom NotifyDescriptor, specify the panel instance as a parameter + other params NotifyDescriptor nd = new NotifyDescriptor( popupSelector, // instance of your panel "Title", // title of the dialog NotifyDescriptor.YES_NO_OPTION, // it is Yes/No dialog ... NotifyDescriptor.QUESTION_MESSAGE, // ... of a question type => a question mark icon null, // we have specified YES_NO_OPTION => can be null, options specified by L&F, // otherwise specify options as: // new Object[] { NotifyDescriptor.YES_OPTION, ... etc. }, NotifyDescriptor.YES_OPTION // default option is "Yes" ); // let's display the dialog now... if (DialogDisplayer.getDefault().notify(nd) == NotifyDescriptor.YES_OPTION) { // user clicked yes, do something here, for example: System.out.println(popupSelector.getTRANSACTION_TYPE()); }