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

}

}

其运行结果为:

(0)

相关推荐