netbeans平台旧对话框如何获取应用程序()

时间:2015-05-15 15:33:43

标签: java netbeans-platform

我正在将现有的应用程序移植到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平台应用程序中,我似乎无法找到应用程序(我想我尝试了所有的变量)

1 个答案:

答案 0 :(得分:0)

经过多次搜索后,在DialogDescriptor文档下找到它......

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

在我弄清楚如何创建我可以装饰的自定义对话框时,.show()方法仍然是个问题,但我发现DialogDisplayer可以使用我创建的对象。做完了。

Dialog 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