图形用户界面
Swing
Java图形版本界面由早期的J2SE版本中的AWT过渡到现在的Swing组件,一方面减弱了平台相关性,另一方面增加和还进了许多功能。两者关系:
1. 组件:
(Component类)是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象.Component类是AWT组件类层次结构的根类。
2. 容器:
(Container类)容器类属于Component类的子类,所以容器是一个用来容纳其他组件和容器的组件,容器包括面板和窗口。大多数swing组件类都Container类的子类,所以他们继承了容器的性质。
面板:
面板不能独立运行,必须包含在另一个容器中。
窗口:
窗口类(Window)主要由两个子类:框架(JFrame类)和对话框。
此次我们只讨论JFrame类和JLbel类(用来在图形用户界面上显示一个字符串或一幅图片)的使用,代码:
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.*;
public class JFJL extends JFrame {
public JFJL(){ //声明构造方法
super("框架和标签的使用");
/*
getContentPane()是javax.swing.JFrame的成员方法,用于返回当前窗口的容器一般不直接使用JFrame容器,而是获取当前窗口的容器c
,在C中添加组件
*/
Container c=getContentPane();
/*
c.setLayout是JFrame类的方法,用于设置当前窗口的布局格式,newFlowLayout(FlowLayout.LEFT)是使用java.awt.FlowLayout
的构造方法实例化一个流布局管理器对象,并使组件自动左对齐
*/
c.setLayout(new FlowLayout(FlowLayout.LEFT));
//字符类型的数组
String[] s={"文本标签","文字在图形上方","文字在图形下方"};
/*
使用图像类创建一个数组对象,其中ImageIcon(getClass().getResource(""))用于生成一个图像对象,getClass.
getResource("")用于获取照片
*/
ImageIcon[] ic={null,new ImageIcon(getClass().getResource("th.jfif")),new ImageIcon(getClass().getResource("th.jfif"))};
int [] ih={0,JLabel.LEFT,JLabel.CENTER}; //常量JLabel.LEFT,JLabel.CENTER分别代表了不同的对齐方式
int [] iv={0,JLabel.CENTER,JLabel.BOTTOM}; //常量JLabel.CENTER,JLabel.BOTTOM分别代表了不同的对齐方式
for(int i=0;i<3;i++)
{
JLabel label=new JLabel(s[i],ic[i],JLabel.LEFT);
if(i>0)
{
label.setHorizontalTextPosition(ih[i]);
label.setVerticalTextPosition(iv[i]);
}
label.setToolTipText("第"+(i+1)+"个标签");
c.add(label);
}
}
public static void main(String[] args) {
JFJL app=new JFJL();
// app=new JFJL();
app.setSize(600,300);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setVisible(true);
}
}
这就是运行结果