700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java中GUI的awt和Swing的知识点

java中GUI的awt和Swing的知识点

时间:2021-11-29 02:16:47

相关推荐

java中GUI的awt和Swing的知识点

刚刚学习了java的GUI,写了几个程序,基本熟悉了awt和Swing,下面和大家分享一下知识点

1、JFrame的层次结构

参考:/p/216123?see_lz=1

Frame 的最底层是 RootPane,

然后是 LayeredPane

再上面就是 ContentPane(默认放控件)

最顶层是 GlassPane(默认透明)

最顶层的 GlassPane 默认是透明的

ContentPane 就是默认盛放控件的那个层次

默认的 ContentPane 就是一个 JPanel

例如: JPanel jp=(JPanel)fr.getContentPane();

其实 ContentPane 是添加在 LayeredPane 上的一个控件。

而 LayeredPane 和 GlassPane 是直接添加在 RootPane 上的,

RootPane 直接添加在 JFrame 上

2、java.awt.Container

继承者 javax.swing.JComponent

setOpaque(boolean isOpaque) //设置是否透明 透明为false

例如:

JPanel jp=(JPanel)fr.getContentPane();

jp.setOpaque(false);//设置透明

3、任何组建都可以设置大小和位置

例如:

bu2 = new JButton("Open");

bu2.setSize(80,40);

bu2.setLocation(20, 40);

4、只有Container容器才能设置布局

例如:

panel.setLayout(new FlowLayout());

注意:

当传入的参数为null时,容器内的每一个控件都要设置大小和位置

例如:

panel.setLayout(null);

bu2 = new JButton("Open");

bu2.setSize(80,40);

bu2.setLocation(20, 40);

5、任何组件都可以设置字体

例如:

la2 = new JLabel("Tools For Windows8.1&10");

la2.setFont(new java.awt.Font("Dialog",1,20));

注意:

转入的字体必须是一个对象

6、给JLabel和JButton添加图标

方法一:

在对象初始化时传入一个图标

例如:

ico = new ImageIcon(this.getClass().getResource("/Image/壁纸.jpg"));

JButton jb = new JButton(ico);

方法二:

new完对象后,调用方法添加

例如:

ico = new ImageIcon(this.getClass().getResource("/Image/壁纸.jpg"));

JButton jb = new JButton();

jb.setIcon(ico);

7、如何给JFrame设置背景图片

通过JLabel来设置:

ico = new ImageIcon(this.getClass().getResource("/Image/壁纸.jpg"));

la1 = new JLabel(ico);

//设置la1距离JFrame0,0,大小为壁纸的大小

//也就是说JFrame的大小也就是壁纸的大小

la1.setBounds(0,0,ico.getIconWidth(),ico.getIconHeight());

fr.setBounds(200, 120, ico.getIconWidth(), ico.getIconHeight());

//添加壁纸

fr.getLayeredPane().add(la1,new Integer(Integer.MIN_VALUE));

//获取frame的(最上层)面板为了设置其背景颜色

JPanel jp=(JPanel)fr.getContentPane();

jp.setOpaque(false);//设置为透明后,就可以显示下一层的壁纸了,但是该层上的控件还是可以显示的

//这一步设置布局非常关键,这样设置可以用于其他组建的定位,设置为null后,每一个组建都要设置大小和位置

panel.setLayout(null);

//接下来就在panel上可以添加控件了,

//注意:

// 每一个控件都要设置大小和位置

fr.add(panel);

fr.setVisable(true);

8、可能出错的地方

1、没有fr.setVisable(true);

注意:

任何控件都可以设置为隐藏或者是显现,只是Container下的对象在new出来以后默认是隐藏的

2、添加事件后要导入包

import java.awt.event.*;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。