首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → Swing中的getContentPane()方法

Swing中的getContentPane()方法

摘要: Swing中的getContentPane()方法

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="271" height="86" align="center" valign="top"> </td> <td width="413" valign="top"> 在过去的J2SE版本中,部件(components)不能直接添加到最高级(top level)的Swing容器,这些容器包括:JFrame, JDialog, JWindow, JApplet和JInternalFrame. 例如现在有一个JFrame的instance命名为aFrame。 我们要添加一个命名为aComponent的部件(比如一个JPanel)到JFrame里。以往我们需要调用JFrame的getContentPane()办法。如下:

aFrame.getContentPane().add(aComponent)

在J2SE5.0中,我们可以直接添加部件到最高级的Swing容器,也可以直接在容器内设置布局管理(Layout Manager)和删除部件。这个变化允许我们可以省去调用getContentPane()而直接在容器内应用add(),setLayout()和remove()。然而,我们还是不能忽略了ContentPane,即使我们可能将不会再使用ContentPane来添加部件到容器。

</td> </tr> <tr> <td height="20" colspan="2">


先看一个我们以往在J2SE1.4及其以前的版本经常应用到的例子。我们要设置一个JFrame的布局管理而且添加一些部件到该JFrame。查看api关于JFrame的文件可以发现, JFrame从java.awt.Container继承了add()办法. 该add()是用来添加一个部件到JFrame容器. Container类里也包含setLayout()办法, 该setLayout()是用来设置继承者(比如上面的JFrame容器)的布局管理。

下面是一个简单的例子:

   import javax.swing.JFrame;

   import javax.swing.JPanel;

   import java.awt.GridLayout;

   import java.awt.Color;

   public class FrameTest extends JFrame {

   //注意在1.4及其以前版本中可以编译,但是运行有问题

   //5.0版本运行正常

     FrameTest(){

       super("Test");

       setBackground(Color.BLACK);

       setLayout(new GridLayout(6,6,2,2));  // 1.4中问题 1

       for ( int i=0;i<36; i++){

         JPanel jPanel = new JPanel();

         jPanel.setBackground(new Color (

                (int)(Math.random()*16777215)));

         add(jPanel);                      // 1.4中问题 2

       }

       setSize(400,400);

       setVisible(true);

     }

     public static void main(String[] args){

       new FrameTest();

     }

   }

                        


输出入下:



这时我们注意到上面输出的JFrame的背景颜色并不是黑色而是白色, 也就是说上面的setBackground(Color.BLACK)编译后
该JFrame的背景颜色并没有被显示, 如果要让JFrame背景颜色为黑色--grid之间颜色为黑色还需要调用getContentPane(),

getContentPane().setBackground(Color.BLACK);
如下面输出:



详细的新版本swing操作请到sun的java论坛里查询...
</td> </tr> </table>
function TempSave(ElementID) { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); } </td> </tr> <tr>


↑返回目录
前一篇: Hello,Synth!
后一篇: 使用线程池处理简短任务

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved