JAVA:向窗口中添加组件,问题在注释上。

[复制链接]
查看11 | 回复1 | 2010-3-11 15:47:44 | 显示全部楼层 |阅读模式
从你注释的第一个问题开始;1.setBorder是设置边框的函数,BorderFactory是javax.swing package里的一个类,提供创建border的函数。你的程序里没有import,所以需要添加import javax.swing.BorderFactory;2.contents是前面Component contents所申明的,Component是java.awt里的一个类,很多swing类都是继承它的,这句是申明一个Component类型的reference,指向前面定义的createComponents()这个函数(注意这个函数返回的是Component类型的reference)同样需要import java.awt.Component;3,4:frame.getContentPane().add(contents);和frame.pack();都是JFrame类的函数,新建一个JFrame都需要这两个函数,一个是把刚才得到的Component加进框架里,第二个是让JFrame的边框适合(你可以试试把pack()函数去掉,会发现GUI缩在一起,就是看不到你的Components)
回复

使用道具 举报

千问 | 2010-3-11 15:47:44 | 显示全部楼层
1、pane.setBorder(BorderFactory.createLoweredBevelBorder()); 方法setBorder是设置组件的边框,边框也就是窗口四周的样式了,BorderFactory类中存放了很多边框的样式,这些样式是java已经编写好了的,不用我们自已来编写一个边框。createLoweredBevelBorder表示使用的是BorderFactory类中的边框之一。2、Component contents=app.createComponents();这句是调用JFrameDemo1类中的createComponents方法,这个方法是在你的程序中实现的,也就是在本例中的第二行可以看到。该方法最后反回一个面板。3、frame.getContentPane().add(contents);在JAVA中JFrame是由根面板,内容面板,玻璃面板,层面板和菜单栏组成的,因此JFrame中的getContentPane()方法反回的就是JFrame的内容面板,然后使用add方法,将你自已设置的contents组件,设置为JFrame的内容面板。5、frame.pack();这句的作用是根据JFrame中组件的数组及排列方法设置JFrame的大小。pack()方法还能提前创建对等体(什么是对等体,在这里你不用去了解了)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行