Netbeans平台的TopComponents在功能上与JFrame类似,在很多方面都是如此,除了TopComponent
扩展JComponent
之外,还可以使用它。
但是,我目前正在尝试将Docking Frames用于我的应用程序。我想在我的一个TopComponents中插入一堆这些,但是控件类需要一个JFrame作为参数,没有它就无法实例化它。正如我所说的那样,TopComponent
并没有延伸JFrame
,所以我不能简单地投射它们,但遗憾的是,如果我可以那么能。
我该怎么办?
答案 0 :(得分:0)
尝试使用嵌套的JPanel
代替。
GridBagLayout
。JPanel
。我使用GridBagConstraints
因为它只是一种线方法来确保“全帧”布局。您可以使用任何其他布局来执行相同的操作。我尽量保持TopComponent
尽可能小。所有GUI组件都是嵌套的JPanels
。如果您想在没有NetBeans平台的情况下测试代码,只需添加父JFrame
而不是TopComponent
。
public MyTopComponent() {
initComponents();
panel = new MyPanel();
//ensures that our panel will be using 100% of our TopComponent
add(panel, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
GridBagConstraints.NORTHWEST,
GridBagConstraints.BOTH,
new Insets(0, 0, 0, 0), 0, 0)
);
}
//this code is generated by GUI editor
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setLayout(new java.awt.GridBagLayout());
}// </editor-fold>