- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了一些研究来了解 JFrame 的使用及其部件,我发现了以下信息:
1- JFrame 的部分
2- JFrame 实现 RootPaneContainer 接口(interface)
return type | method name
Container getContentPane();
Container getGlassPane();
JLayeredPane getLayeredPane();
JRootPane getRootPane();
3-JRootPaneJFrame 的 JRootPane。 JRootPane 是 JFrame 在幕后使用的轻量级容器。
JFrame 实现了 RootPaneContainer 接口(interface),并且它们都将其操作委托(delegate)给 JRootPane。
注意: JComponent 方法 getRootPane 可用于获取包含给定组件的 JRootPane。
代码:
public static void main(String[] args) {
//--> create JFrame
JFrame f = new JFrame("Demo Frame");
f.setSize(300, 150);
f.setVisible(true);
//--> now use JFrame.getContentPane()
Container c = f.getContentPane();
//--> use JOptionpane.getContentPane()
JRootPane op = f.getRootPane();
op.getContentPane();
}
问题:为什么我应该使用 JRootPane 中的 getContentPane() 方法而不是 JFrame ?
最佳答案
没有区别。调用 frame.getContentPane()
比调用 frame.getRootPane().getContentPane()
更方便。
Swing 这样做有两个原因。
1) 由于 JavaDoc 中指定的原因,JFrame
需要实现 RootPaneContainer
作为标记。 .
2) 它具有单独的 JRootPane
,以便可以在其他 RootPaneContainer 实现类(如 JDialor
和 JInternalFrame
)中重用。就像 Delegation模式。
关于java - : the use of getContentPane() from JFrame Class & getContentPane() from JRootPane? 和有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45043740/
我正在尝试创建一个带有占据整个屏幕的 JRootPane 的 JFrame,但是由于某种原因,JRootPane 的内容没有像应有的那样填满屏幕。 我认为问题在于 JRootPane 未填充其父 Pa
我正在尝试调试一个非常讨厌的错误(即使我的面板已添加到 JFrame 中,但它也没有显示),并且我注意到 JFrame 内的 JRootPane 的名称设置为 null:(这是我的 JFrame 构造
我里面有一个 JFrame 和一个 JPanel 层次结构,我想实现一个内部面板,我可以让它看起来“禁用”(而其他面板不会改变),也就是说,用半透明的灰色层覆盖它并拦截所有发送到此面板的鼠标甚至键盘事
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我知道为什么这些组件被称为重量级组件了。我真正感兴趣的是为什么它们没有被实现为轻量级。谢谢 最佳答案 这些组件是不同类型的窗口。如果你想在操作系统中创建一个窗口,你需要调用一些操作系统 native
我做了一些研究来了解 JFrame 的使用及其部件,我发现了以下信息: 1- JFrame 的部分 根 Pane 菜单裸露 内容 Pane 玻璃板 2- JFrame 实现 RootPaneConta
我是一名优秀的程序员,十分优秀!