старое диалоговое окно платформы netbeans, как получить приложение ()

Я переношу существующее приложение на платформу netbeans, и хотя я, вероятно, изменю некоторые из существующих диалогов на новые методы уведомления, некоторые из диалогов довольно сложны (несколько панелей и т. д.), и я бы предпочел не портировать их, на по крайней мере пока нет. Я узнал, как получить мейнфрейм,

   mainFrame = (JFrame) WindowManager.getDefault().getMainWindow(); 

Но я понятия не имею, что использовать для .getApplication().show()

public void configScoreboard() {
    if (!in_race) {
        if (CSBox == null) {
            CSBox = new SBconfig(mainFrame, true);
            CSBox.setLocationRelativeTo(mainFrame);
        }
        Sst01App.getApplication().show(CSBox);
    }
}

Sst01App, конечно, не существует в моем новом приложении платформы Netbeans, и я не могу найти приложение (я думаю, что перепробовал все переменные)


person Steven Riedl    schedule 15.05.2015    source источник


Ответы (1)


Нашел его в документации DialogDescriptor после долгих поисков...

https://ui.netbeans.org/docs/ui_apis/dide/index.html

Там, где я понял, как создать собственный диалог, который я мог бы украсить, метод .show() все еще был проблемой, но я обнаружил, что DialogDisplayer будет работать с созданным мной объектом. Так сделано.

Диалог sb2Dlg = DialogDisplayer.getDefault().createDialog(sb2);

Все еще получаю массу удовольствия от безрамочного и полноэкранного режима, но это уже другая тема.

class MyPanel extends javax.swing.JPanel implements java.awt.event.ActionListener { 
   //buttons, fields, labels, etc.
    ... 

   public void requestFocus () { //set focus for one components 
        myField.requestFocus (); 
   }
    ...
   public void actionPerformed(final java.awt.event.ActionEvent ap) { // handling code for buttons
    ...
   }
}
MyPanel mp = new MyPanel(); // create new MyPanel 
Object [] options =  {  new JButton ("Choice 1"), 
                    new JButton ("Choice 2")};
DialogDescriptor dd = new DialogDescriptor (mp, 
                        "Text in title", 
                         true, 
                         options, 
                         null, 
                         DialogDescriptor.DEFAULT_ALIGN, 
                         null, 
                         mp); //create new modal DialogDescriptor with defined ActionListener 
mp.requestFocus(); // set focus to component which was specified in MyPanel's         requestFocus() method 
TopManager.getDefault ().createDialog (dd).show (); //show dialog
person Steven Riedl    schedule 22.05.2015