使用图片图标
Swing利用java.swing.ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口,同时Java支持多种图片格式
public ImageIcon();
//构建一个通用的ImageIcon对象,当需要设置图片时 再使用ImageIcon对象调用setImage(Image image)来操作
public ImageIcon(Image image);//直接从图片源创建图标
public ImageIcon(Image image,String description);//从图片源创建图标,并为这个图标添加简短的描述
//描述并不会在图片上显示,可以使用getDescription()方法来获取这个描述
public ImageIcon(URL url);//利用位于计算机网络上的图像文件创建图标
例(java.lang.Class类中的getResource()方法可以获取资源文件的URL路径。例子中该方法的参数是imageButton.jpg,这个路径是相对于tupiantubiao类文件的,所以可以将图片文件和类文件放在同一个文件夹中)
public class tupiantubiao extends JFrame{
public tupiantubiao(){
setTitle("悟空");
Container container =getContentPane();
JLabel jl=new JLabel("这是一个可爱的悟空",JLabel.CENTER);
URL url=tupiantubiao.class.getResource("imageButton.jpg");
Icon icon =new ImageIcon(url);
jl.setIcon(icon);// 为标签设置图片
jl.setHorizontalAlignment(SwingConstants.CENTER);//设置文字放置在标签中间
jl.setOpaque(true);//设置标签为不透明状态
container.add(jl);
setSize(250,100);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new tupiantubiao();
}
}
5.常用布局管理器
绝对布局
步骤:
Container.setLayout(null);//取消布局管理器
Component.setBounds();//设置每个组件的大小与位置
例:
public class demo extends JFrame{
JButton jb1 =new JButton("这是按钮1");
JButton jb2 =new JButton("这是按钮2");
public demo() {
Container c=getContentPane();
setLayout(null);
setBounds(0,0,200,150);
jb1.setBounds(10,30,80,30);
jb2.setBounds(60,70,100,20);
c.add(jb1);
c.add(jb2);
setTitle("这是一个绝对布局窗口");
setSize(300,200);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[]args) {
new demo();
}
}
流布局管理器
像“流”一样从左到右摆放组件,直到占据这一行的所有空间
如果改变整个窗体的大小,其中组件的摆放位置也会相应地发生变化
public FlowLayout();
public FlowLayout(int alignment);
public FlowLayout(int alignment,int horizGap,int vwertGap);
//alignment设为0时,每一行的组件将被指定向左对其,为1时,居中。为2时,向右对齐
//horiGap,vertGap这两个参数分别以像素为单位指定组件之间的水平间隔和垂直间隔
边界布局管理器
BorderLayout.NORTH | 在容器添加组件时,组件置于顶端 |
---|---|
BorderLayout.SOUTH | 在容器添加组件时,组件置于底端 |
BorderLayout.EAST | 在容器添加组件时,组件置于右端 |
BorderLayout.WEST | 在容器添加组件时,组件置于左端 |
BorderLayout.CENTER | 在容器添加组件时,组件置于中间开始填充,直到与其他组件边界连接 |
public class bianjiebuju extends JFrame{
String[] border={
//定义组件摆放位置数组
BorderLayout.CENTER,BorderLayout.NORTH,BorderLayout.SOUTH,BorderLayout.
WEST,