目录
前言:
关于Swing进行一些创作和样品设计,不过笔者还是更加推荐去网上寻找一些视频教程,这里直接看代码的话会比较的蒙,建议初学者以视频讲解类的内容为主。
目标:
下图是使用以下代码实现的成品结构图。
实现:
导入包:
mport javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
组件文本准备:
创建相关的容器主键,这里文本中有了一定的注释,具体还有那里不懂可以私聊笔者进行询问。
JFrame jf = new JFrame("测试边框");
public JPanel getJPanelWithBorder(Border border, String content){
JPanel jPanel = new JPanel();
jPanel.add(new JLabel(content));
// 设置边框
jPanel.setBorder(border);
return jPanel;
}
初始化界面:
初始化界面也就是对组件进行一定的封装,将小的组件封装到容器中并实现。
// 组装视图
//1. JFrame的布局修改为GridLayout
jf.setLayout(new GridLayout(2,4));
//2. 在网格中填充不同的JPanel组件,并且设置边框和内容
//创建BevelBorder
Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.RED, Color.GREEN, Color.BLUE, Color.GRAY);
jf.add(getJPanelWithBorder(bevelBorder,"bevelBorder"));
//创建LineBorder
Border lineBorder = BorderFactory.createLineBorder(Color.ORANGE, 10);
jf.add(getJPanelWithBorder(lineBorder,"lineBorder"));
//创建EmptyBorder
Border emptyBorder = BorderFactory.createEmptyBorder(10, 5, 20, 30);
jf.add(getJPanelWithBorder(emptyBorder, "emptyBorder"));
//创建EtchedBorder
Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.RED, Color.GREEN);
jf.add(getJPanelWithBorder(etchedBorder,"etchedBorder"));
//创建TitledBorder
TitledBorder titledBorder = new TitledBorder(new LineBorder(Color.ORANGE,10),"测试标题");
jf.add(getJPanelWithBorder(titledBorder,"titledBorder"));
//创建MatteBorder
MatteBorder matteBorder = new MatteBorder(10, 5, 20, 10, Color.GREEN);
jf.add(getJPanelWithBorder(matteBorder,"matteBorder"));
//创建CompoundBorder
CompoundBorder compoundBorder = new CompoundBorder(titledBorder, new LineBorder(Color.RED, 10));
jf.add(getJPanelWithBorder(compoundBorder,"compoundBorder"));
//3. 设置窗口最佳大小、设置窗口课件,处理关闭操作
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
总代码:
接下来就是完整的代码实现了
package com.swing02;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
/**
* 边框演示
*/
public class Demo {
JFrame jf = new JFrame("测试边框");
public void init(){
// 组装视图
//1. JFrame的布局修改为GridLayout
jf.setLayout(new GridLayout(2,4));
//2. 在网格中填充不同的JPanel组件,并且设置边框和内容
//创建BevelBorder
Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.RED, Color.GREEN, Color.BLUE, Color.GRAY);
jf.add(getJPanelWithBorder(bevelBorder,"bevelBorder"));
//创建LineBorder
Border lineBorder = BorderFactory.createLineBorder(Color.ORANGE, 10);
jf.add(getJPanelWithBorder(lineBorder,"lineBorder"));
//创建EmptyBorder
Border emptyBorder = BorderFactory.createEmptyBorder(10, 5, 20, 30);
jf.add(getJPanelWithBorder(emptyBorder, "emptyBorder"));
//创建EtchedBorder
Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.RED, Color.GREEN);
jf.add(getJPanelWithBorder(etchedBorder,"etchedBorder"));
//创建TitledBorder
TitledBorder titledBorder = new TitledBorder(new LineBorder(Color.ORANGE,10),"测试标题");
jf.add(getJPanelWithBorder(titledBorder,"titledBorder"));
//创建MatteBorder
MatteBorder matteBorder = new MatteBorder(10, 5, 20, 10, Color.GREEN);
jf.add(getJPanelWithBorder(matteBorder,"matteBorder"));
//创建CompoundBorder
CompoundBorder compoundBorder = new CompoundBorder(titledBorder, new LineBorder(Color.RED, 10));
jf.add(getJPanelWithBorder(compoundBorder,"compoundBorder"));
//3. 设置窗口最佳大小、设置窗口课件,处理关闭操作
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public JPanel getJPanelWithBorder(Border border, String content){
JPanel jPanel = new JPanel();
jPanel.add(new JLabel(content));
// 设置边框
jPanel.setBorder(border);
return jPanel;
}
public static void main(String[] args) {
new Demo().init();
}
}