java container getcontentpane_Swing中的getContentPane()方法 | 学步园

这时我们注意到上面输出的JFrame的背景颜色并不是黑色而是白色, 也就是说上面的setBackground(Color.BLACK)编译后

该JFrame的背景颜色并没有被显示, 如果要让JFrame背景颜色为黑色--grid之间颜色为黑色还需要调用getContentPane(),

getContentPane().setBackground(Color.BLACK);

如下面输出:

tt1102_colorframe3.gif

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");

// this.setBackground(Color.BLACK);

getContentPane().setBackground(Color.BLACK);

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

getContentPane().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

getContentPane().add(jPanel);

}

setSize(400, 400);

setVisible(true);

}

public static void main(String[] args) {

new FrameTest();

}

}

下面的这个程序也会很好解释现象

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

/*

FlowLayout()建立一个新的Flow Layout,此FlowLayout默认值是居中对齐,组件彼此有5单位的水平与垂直间距。

FlowLayout(int align)建立一个新的Flow Layout,此FlowLayout可设置排列方式,组件彼此有5单位的水平与垂直 间距。

FlowLayout(int align,int hgap,int vgap)建立一个新的Flow Layout,此FlowLayout可设置排列方式与组件间距。

*/

public class FlowLayoutDemo {

public FlowLayoutDemo() {

JFrame f = new JFrame();

/*

* 你可以使用有间距的FlowLayout构造函数,使FlowLayout的排列具有间距,并

* 并可利用排列方向参数来指定靠什么方向排列,FlowLayout共有五种排列方式,

* 依次是CENTER(默认值),LEFT,RIGHT,LEADING,TRAILING,若我们将下面程序第13

* 行改成contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));

*/

/*

* Container contentPane=f.getContentPane(); contentPane.setLayout(new

* FlowLayout()); contentPane.add(new JButton("first"));

* contentPane.add(new JButton("second")); contentPane.add(new

* JButton("third")); contentPane.add(new JButton("fourth"));

* contentPane.add(new JButton("fifth")); contentPane.add(new

* JButton("Last"));

*/

Container contentPane = f.getContentPane();

contentPane.setLayout(new FlowLayout());

// setLayout(new FlowLayout());

JPanel jPanel = new JPanel();

jPanel.add(new JButton("first"));

// f.add(new JButton("first"));

f.add(new JButton("second"));

f.add(new JButton("third"));

f.add(new JButton("fourth"));

f.add(new JButton("fifth"));

f.add(new JButton("Last"));

f.setTitle("FlowLayout");

// f.pack();//必须将f.pach()去掉,否则setSize功能将没有作用

f.setSize(400, 220);

f.setVisible(true);

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

private void setLayout(FlowLayout flowLayout) {

// TODO Auto-generated method stub

}

public static void main(String[] args) {

FlowLayoutDemo b = new FlowLayoutDemo();

}

}

发现在javaSE1.4之中不能直接在JFrame当中直接使用.setLayout .setBackground   .add(JPanel)  方法

需要使用Container   contentPane = f.getContentPane();方法获得Container对象  然后contentPane使用上述方法,亦可直接使用getContentPane()进行添加

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: getContentPane方法Java的一个方法,它返回一个容器对象,该容器对象是窗口的内容面板。在Java,我们可以使用该方法来获取窗口的内容面板,并在该面板上添加组件或进行其他操作。该方法通常用于创建GUI应用程序。 ### 回答2: JavagetContentPane()方法Java Swing常用的方法,该方法返回一个容器对象,它是容器顶层面板的一个引用。该方法的作用是返回包含所有组件的顶层容器面板。 getContentPane()返回JFrame的容器。在使用swing技术时,我们创建的窗体都是继承JFrame类,JFrame已经提供了很多的方法,其getContentPane()就是其之一。 这个方法返回顶层面板。在JFrame,使用add()方法添加控件时,实际上是在顶层容器添加控件,而不是在JFrame添加控件。我们可以通过getContentPane()方法取得JFrame内的顶层面板,然后像操作其他容器面板一样操作它,即可完成对JFrame的布局。如果只是简单的放置控件,则可以直接放在JFrame,这时调用add()方法默认为在JFrame添加控件,这也是java swing技术的一种常用方法。 此外,getContentPane()还有一个重载方法,即getContentPan.isOpaque(),用于确定容器面板是否不是透明的。如果容器不透明,返回true,否则返回false。该方法可以用来确定子组件的绘图表面属性以及计算链式剪辑器上的区域。 综上所述,getContentPane()方法Java Swing的常用方法之一,它返回的是一个容器对象,是包含所有组件的顶层容器面板的引用。在JFrame添加组件时,应使用此方法返回的容器面板进行操作。它可以帮助我们更方便的对界面进行布局和管理控件。 ### 回答3: 在Java编程语言getContentPane()是一个方法,用于获取窗口的内容面板。窗口的内容面板是一个容器,用于存放窗口的其他组件,例如按钮、标签和文本框等。 当创建一个窗口时,可以使用如下语句获取内容面板: Container container = frame.getContentPane(); 其,frame表示窗口的实例对象。 一旦获取到窗口的内容面板,就可以向其添加其他组件,例如: container.add(new JButton("Click me")); 上面的语句将在窗口的内容面板添加一个名为“Click me”的按钮。通过getContentPane方法获取窗口的内容面板,可以方便地在窗口添加其他组件,使得窗口具有更加丰富的交互功能。 需要注意的是,在添加组件到窗口的内容面板时,需要根据布局管理器进行排版,以确保组件能够自动适应窗口的大小和位置。常用的布局管理器包括FlowLayout、GridLayout和BorderLayout等。 总之,getContentPane()方法Java一个非常常用的方法,它允许我们获取到窗口的内容面板,从而对窗口进行自由布局和组件添加。对于Java图形界面编程的学习来说,getContentPane()方法是一个非常重要的基础知识点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值