Netbeans 平台的 TopComponents 在许多方面在功能上与 JFrames 相似,并且旨在如此使用,除了 TopComponent
之外。扩展 JComponent
。
但是,我目前正在尝试使用 Docking Frames为我的申请。我想在我的一个 TopComponents 中插入一堆这样的组件,但是控件类需要一个 JFrame 作为参数,没有它就无法实例化。正如我所说,TopComponent
不扩展 JFrame
,所以我不能简单地强制转换它们,但遗憾的是,它们可能可以做到这一点如果可以的话。
我能做什么?
最佳答案
请尝试使用嵌套的 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>
关于java - 如何将我的 TopComponent 用作 JFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989616/