Swing程序设计(一)
-
JFrame可用方法如下:
1.getContentPane() 获取窗体容器
2.setContentPane(面板容器对象) 载入容器
3.setTitle(…) 设置窗体标题
4.setSize(x,y) 设置窗体大小,单位:像素
5.setLocation(a,b) 设置窗体坐标,单位:像素
6.setBounds(a,b,x,y) 设置窗体坐标和大小
7.setResizable(true|false) 设置窗口大小是否可以改变
8.setVisible(false|true) 设置窗体是否可视化
9.setDefaultCloseOperation() 设置关闭方式———— (DO_NOTHING_ON_CLOSE 什么都不做直接关闭,程序并未结束 | DISPOSE_ON_CLOSE 释放窗体资源后关闭 | HIDE_ON_CLOSE 隐藏窗口 | EXIT_ON_CLOSE 退出程序)
10.getX() 获取窗体横坐标
11.getY() 获取窗体纵坐标
12.setLocationRelativeTo(null) 窗体居中注:Frame窗体默认布局为BorderLayout
-
Container(Container a = f.getContentPane())
1.setBackground(Color.BLUE) 设置容器的背景颜色
2.add() 添加组件
3.remove() 删除组件
4.validate() 验证容器中的组件(使容器可以再次布置组件,即刷新操作)
5.setLayout(布局对象) 设置布局 -
JDialog(对话框窗体)
方法与JFrame差不多
构造方法:
JDialog() 创建没有指定父类窗体、标题、模式的对话框
JDialog(Frame f) 创建有指定父类窗体的对话框
JDialog(Frame f,boolean model) 创建指定父类窗体、模式的对话框
JDialog(Frame f,String title) 创建指定父类窗体、标题的对话框
JDialog(Frame f,String title,boolean model) 创建指定父类窗体、标题、模式的对话框 -
JLabel(标签:可显示图像和文本)
构造方法:
JLabel() 创建不带文本和图标的JLabel对象
JLabel(Icon icon) 创建带图标的JLabel对象
JLabel(Icon icon,int aligement) 创建带图标的JLabel对象,并设置图标水平对齐方式
JLabel(String text,int aligement) 创建带文本的JLabel对象,并设置文字水平对齐方式
JLabel(String text,Icon icon,int aligement) 创建带文本和图标的JLabel对象,并设置标签内容的水平对齐方式aligement参数取值:
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.RIGHT
SwingConstants.LEADING
SwingConstants.TRAILING常用方法:
1.getText() 获取标签内容
2.setText(…) 设置标签内容
3.setFont(Font f) 设置字体样式 拓展:new Font(字体,样式(如变粗),大小) 如:Font f = new Font(“微软雅黑”,Font.BOLD,15 )
4.setForeground(Color.RED) 更改前景色(即字体颜色)
5.setIcon(Icon icon) 添加图片 拓展:Icon icon = new ImageIcon(图片路径,默认为项目路径),注:Icon为接口,ImageIcon为Icon的实现类,这里为向上转型
6.setSize(x,y) 设置标签大小,不会改变图片大小 注:(有图片时,标签和图片大小都不改变)
7.setHorizontalAlignment(int alignment) 设置标签内容水平对齐方式 -
图标的使用(Icon接口)
通过Icon接口绘制图标必须实现接口三个方法:
1.public int getIconHeight() 用于获取图标的长
2.public int getIconWidth() 用于获取图标的宽
3.public void paintIcon(Component arg0, Graphics arg1, int x, int y) 在指定坐标位置画图(本方法似乎是自动调用,因本人初学java,怎么调用尚不知道)
例子如下:
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon { // 实现Icon接口
private int width; // 声明图标的宽
private int height; // 声明图标的长
public int getIconHeight() { // 实现getIconHeight()方法
return this.height;
}
public int getIconWidth() { // 实现getIconWidth()方法
return this.width;
}
public DrawIcon(int width, int height) { // 定义构造方法
this.width = width;
this.height = height;
}
// 实现paintIcon()方法
public void paintIcon(Component arg0, Graphics arg1, int x, int y) {
arg1.fillOval(x, y, width, height); // 绘制一个圆形
}
public static void main(String[] args) {
DrawIcon icon = new DrawIcon(100, 50);
// 创建一个标签,并设置标签上的文字在标签正中间
JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);
JFrame jf = new JFrame(); // 创建一个JFrame窗口
Container c = jf.getContentPane();
c.add(j);
jf.setSize(100,100);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
-
ImageIcon(图片图标)
该类实现了Icon接口,支持多种图片格式构造方法:
ImageIcon()创建通用的对象,当设置图片时再用setImage(Image image)
ImageIcon(Image image) 直接从图片源创建图标
ImageIcon(Image image,String description) 除了添加图片还可以加描述,但并不会显示在图片上,可用getDescription()获取描述。
ImageIcon(URL url) 利用位于计算机网络上的图像文件创建图标。常用方法:
setImage(Image image) 设置图片
getDescription() 获取图片描述`
public int getIconWidth() 获取图标的宽度。
public int getIconHeight() 获取图标的高度。
public Image getImage() 返回此图标的 Image 。
import java.awt.*;
import java.net.*;
import javax.swing.*;
public class MyImageIcon extends JFrame {
private static final long serialVersionUID = 1L;
public MyImageIcon() {
Container container = getContentPane();
// 创建一个标签
JLabel jl = new JLabel("这是一个JFrame窗体", JLabel.CENTER);
// 获取图片所在的URL
URL url = MyImageIcon.class.getResource("imageButton.jpg");
Icon icon = new ImageIcon(url); // 实例化Icon对象
jl.setIcon(icon); // 为标签设置图片
// 设置文字放置在标签中间
jl.setHorizontalAlignment(SwingConstants.CENTER);
jl.setOpaque(true); // 设置标签为不透明状态
jl.setSize(250, 100);
container.add(jl); // 将标签添加到容器中
setSize(1000, 200); // 设置窗体大小
setVisible(true); // 使窗体可见
// 设置窗体关闭模式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new MyImageIcon(); // 实例化MyImageIcon对象
}
上述代码中
URL url =MyImageIcon.class.getResource(“imageButton.jpg”);
getResource可以获取资源文件的URL路径,这个路径是相对于MyImageIcon类文件的,上述例子中图片和类放在同一包下。(简单来说是这个代码是获取与MyImageIcon类同一包下的资源文件的URL路径)
- Image抽象类(图像类)
抽象类 Image 是表示图形图像的所有类的超类。必须以特定于平台的方式获取图像。
构造方法 | 说明 |
---|---|
public Image() | 创建图像实例 |
注意:该类为抽象类,不可直接new实例化,需要通过其他方法获得实例对象。
常用方法 | 说明 |
---|---|
public abstract int getWidth(ImageObserver observer) | 确定图像的宽度。如果宽度未知,则此方法返回 -1,然后通知指定的 ImageObserver 对象。 |
public abstract int getHeight(ImageObserver observer) | 确定图像的高度。如果高度未知,则此方法返回 -1,然后通知指定的 ImageObserver 对象。 |