java学习——58.java.swing学习
AWT组件不是跨平台的,从外观到控制都依赖本地操作系统,所以称为重型组件。它会造成在不同的操作系统中会有不同的外观显现,所以现在均推荐使用Swing组件。
Swing组件扩展了AWT,AWT中有的组件只需要在类名前加J均可在Swing中找到,并且Swing还增加了一些AWT中没有的组件,比如列表、组合框等等。
Swing组件在javax.swing包及其子包中。
Swing事件在javax.swing.event包中。
Swing组件类包含awt里的所有方法,比如setSize(),setVisible()等等,另外还增加了一个方法:
setBorder(Borderborder)用来设置组件的边框风格。
Swing组件包含顶层容器和轻型组件。
顶层容器是轻型组件存在的框架,有JFrame和JPanel。
JFrame如awt中的Frame,但与Frame相同有以下两个不同:
(1) 在给框架中增加组件时,用方法getContentPane().add(JComponent component);
getContentPane()是返回JFrame的内容窗格,add()是添加组件。
(2) 窗口关闭时,不需要再写事件处理代码,仅需在JFrame属性中增加一行:
setDefaultCloseOperation(int operation)
方法中的参数有四种:0表示什么也不做
1表示隐藏窗口
2表示释放窗口
3表示结束程序运行
四个数字也可以用常量:0对应DO_NOTHING_ON_CLOSE
1对应HIDE_ON_CLOSE
2对应DISPOSE_ON_COLSE
3对应EXIT_ON_CLOSE
1、 标签组件JLabel
标签是文本显示组件,与awt中的Label用法基本相同。
增加的功能是图标,即可以为JLabel对象添加一个Icon的图标。
增加的方法声明如下:
public JLabel(String text, Icon icon, int align) //构造方法,icon指定图标
public Icon getIcon()//获得图标
public void setIcon(Icon icon) //设置图标
2、 Icon图标
Icon图标接口描述固定尺寸的图标,声明如下:
public class ImageIcon extends Object implements Icon, Serializable, Accessible //图标类
{
ImageIcon(String filename) //filename指定图标文件名
}
3、例:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class JFRAME extends JFrame{
public JFRAME(){
super("swing组件");
this.setVisible(true);
this.setSize(200, 200);
this.setLocationRelativeTo(null);
this.setLayout(new GridLayout(3,1));
BevelBorder raisedBevelBorder = (BevelBorder)BorderFactory.createRaisedBevelBorder();// 创建浮雕式边框
JLabel label1=new JLabel("欢迎来到Java的世界");//默认左对齐
label1.setBorder(raisedBevelBorder);//设置边框
this.getContentPane().add(label1);
LineBorder lineBorder = (LineBorder)BorderFactory.createLineBorder(Color.black);// 创建线形边框
ImageIcon icon=new ImageIcon("D:\\MyEclipse-8.6\\MyEclipse-8.6\\D:\\MyEclipse8.6\\Workspaces\\jsq\\icon\\pen.jpg");
JLabel label2=new JLabel("张熹熹",icon,0);//0表示居中对齐,添加了图标
label2.setBorder(lineBorder);//设置线形边框
this.getContentPane().add(label2);
BevelBorder loweredBevelBorder = (BevelBorder)BorderFactory.createLoweredBevelBorder();// 创建下沉边框
ImageIcon head=new ImageIcon("D:\\MyEclipse-8.6\\MyEclipse-8.6\\D:\\MyEclipse8.6\\Workspaces\\jsq\\icon\\head.jpg");
JLabel label3=new JLabel("和你的朋友",head,2);//2表示左对齐
label3.setBorder(loweredBevelBorder);//设置下沉边框
this.getContentPane().add(label3);
}
publicstaticvoid main(String args[]){
new JFRAME();
}
}
其运行结果为: