java的JFrame能直接添加组件吗?为什么用内容面板添加组件?

Python012

java的JFrame能直接添加组件吗?为什么用内容面板添加组件?,第1张

早期的java版本. 需要先获得内容面板getContentPane,然后才能向JFram添加组件.

frame.getContentPane().add(child)

后来的java版本, 已经简化为可以直接向JFrame添加组件了.(实际上还是向内容面板进行了添加,只是代码上简洁了).

frame.add(child)

这些知识,你也可以通过阅读java源代码的注释里获得.

java源码里的描述

在JPanel

p=new

JPanel(new

BoxLayout(getContentPane(),BoxLayout.Y_AXIS))

下面添一句:

this.getContentPane.add(p,BorderLayout.CENETR),而不应该把它写在p.add(b)下面,因为JPanel是中间容器,必须要先加到窗体等容器才可以向里面添加组件.

在学习Swing 图形化界面的时候,会出现标签组件---JLabel,而在容器JFrame当中进行设置的时候,可以添加图片,此图片可以充当标签,那么我们还需要一个接口,那就是Icon接口,专门来接收图片的!

现在通过步骤来解决如何将图片添加到标签组件中!

第一步: 创建JFrame容器,并设置标题

第二步: 定义字符串类型的图片路径,目的为ImageIcon类传参

第三步:实例化Icon接口对象,通过子类ImageIcon来完成。

第四步:创建JLabel对象,传入Icon对象和设置在容器当中的位置。

第五步: 设置容器的大小、背景颜色、并显示出来!

具体代码如下:

public class JLabelDemo {

public static void main(String[] args) {

//实例化JFrame对象,并设置标题

JFrame f = new JFrame("我的窗体")

//定义图片路径

String picPath = "d:" + File.separator + "haha.gif"

//实例化Icon对象,并传入图片路径

Icon icon = new ImageIcon(picPath)

// 实例化标签对象,传入Icon对象,并设定位置。

JLabel lab = new JLabel(icon,JLabel.CENTER)

lab.setBackground(Color.YELLOW) //设置窗体的背景颜色

f.add(lab) //将组件件入到JFrame面板之中

f.setSize(600,360) //设置窗体的大小;

f.setLocation(300,200) //设置窗体出现的位置

f.setVisible(true) //让窗体显示出来。

}

}