顺服Tiger: 操作Tiger为窗格减压[Java编程]
本文“顺服Tiger: 操作Tiger为窗格减压[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
欢送来到没有内容窗格的世界.在研究若何可以不 利用内容窗格之前,让我们先看一下内容窗格是什么,以及它为什么存在.在 Swing 中,全部顶级容器,比方 JFrame、JApplet 和 JDialog,都是由 JRootPane 来内部管理的.但是,为什么这些帧不自己管理自己呢?根窗格使顶级对象可以拥有菜单栏、将对象拖到其他组件之上的 glass 窗格,以及一个用于包含全部容器组件的内容窗格.而您要用这个内容窗格来设置筹划管理器和增添组件,如图 1 所示.因为全部的顶级容器都需求相同的对象调集,所以其管理被委派给 JRootPane.
图 1. JRootPane 容器
老办法
在理解利用内容窗格(大概“令人痛楚的东西”,视情形而定)的新办法之前,让我们回过头来看一下在引入 Swing 之前是若何利用内容窗格的.在 5.0 版本之前,无法设置帧的筹划管理器大概直接将组件增添到帧中.您必须得到该帧的内容窗格,用它作为替换.清单 1 中显示了普通的内容窗格利用流程:
清单 1. 5.0 之前的内容窗格利用情形
JFrame frame = new JFrame("Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = ...;
JButton button = ...;
Container contentPane = frame.getContentPane();
LayoutManager layout = new GridLayout(1,2);
contentPane.setLayout(layout);
contentPane.add(label);
contentPane.add(button);
内容窗格本身并不难利用,但是编程人员未必老是记得直接处理内容窗格.假如您无意想试着更改帧的筹划管理器大概在运行期间直接将组件增添到帧中,那么您将看到以下错误:
java.lang.Error: Do not use javax.swing.JFrame.setLayout() use
javax.swing.JFrame.getContentPane().setLayout() instead
这就是全部人都在猜想的,为什么 Java 平台不够智能,无法知道您试图更改帧的筹划管理器时实际上是想为内容窗格更改筹划管理器.在 5.0 版本之前,您必须记得在做其他任何事之前,要先得到内容窗格.
以上是“顺服Tiger: 操作Tiger为窗格减压[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |