当前位置: 首页 > article >正文

《Java核心技术I》Swing中的边框

边框

BorderFactory静态方法创建边框,凹斜面,凸斜面,蚀刻,直线,蒙版,空白。

边框添加标题,BorderFactory.createTitledBorder

组合边框,BorderFactory.createCompoundBorder

JComponent的setBorder方法添加边框到组件。

package swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.Border;
import javax.swing.border.MatteBorder;

public class BorderTest {

    private static JPanel buttonPanel = new JPanel();
    private static ButtonGroup buttonGroup = new ButtonGroup();
    
    
    public static void main(String[] args) {
        
        JFrame frame = new JFrame("边框");
        
        addRadioButton("凹斜面", BorderFactory.createLoweredBevelBorder());
        addRadioButton("凸斜面", BorderFactory.createRaisedBevelBorder());
        addRadioButton("蚀刻", BorderFactory.createEtchedBorder());
        addRadioButton("直线", BorderFactory.createLineBorder(Color.BLUE));
        addRadioButton("蒙版", BorderFactory.createMatteBorder(1, 1, 1, 1, Color.RED));
        addRadioButton("空白", BorderFactory.createEmptyBorder());
        frame.add(buttonPanel,BorderLayout.CENTER);
        
        frame.setSize(600, 400);
        //初始打开为屏幕中央
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension screenSize = toolkit.getScreenSize();
        int screenWidth = (int) screenSize.getWidth();
        int screenHeight = (int) screenSize.getHeight();
        //计算窗口位置
        int x = (screenWidth - frame.getWidth())/2;
        int y = (screenHeight - frame.getHeight())/2;
        frame.setLocation(x, y);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    
    public static void addRadioButton(String name,Border border) {
        boolean selected = name.equals("空白");
        var button = new JRadioButton(name, selected);
        buttonGroup.add(button);
        Border titled = BorderFactory.createTitledBorder(border, name);
        buttonPanel.setBorder(titled);
        buttonPanel.add(button);
        ActionListener listener = e -> buttonPanel.setBorder(titled);;
        button.addActionListener(listener);
    }

}


http://www.kler.cn/a/446880.html

相关文章:

  • 基于Spring Boot的智慧农业专家远程指导系统
  • 为何VisualRules更适合技术人员使用
  • linux-----网络编程
  • Word使用分隔符实现页面部分分栏
  • 解决小程序中ios可以正常滚动,而Android失效问题
  • SpringBoot开发——整合JSONPath解析JSON信息
  • OOP面向对象编程:类与类之间的关系
  • 进程与线程以及如何查看
  • 12.15-12.22学习周报
  • uniapp video组件无法播放视频解决方案
  • C# Winform自定义的UI分页控件
  • Everything实现,快速搜索文件
  • 宠物管理系统(2):utils
  • LeetCode136. 只出现一次的数字(2024冬季每日一题 38)
  • 基于SpringBoot+layui+html实现电影院售票系统【源码+数据库文件+包部署成功+答疑解惑问到会为止】
  • 相机(Camera)成像原理详解
  • JavaScript中,常用crypto模块进行rsa加密,crypto-js模块进行md5算法
  • 【数据库】SQL语句基础
  • Java中正则表达式的介绍、使用场景及示例代码
  • Java学习,输出数组元素
  • 31.设计模式
  • Element@2.15.14-tree checkStrictly 状态实现父项联动子项,实现节点自定义编辑、新增、删除功能
  • Java基础面试题17:GenericServlet和HttpServlet有什么区别?
  • 【Java】mac安装Java17(JDK17)
  • 前端数据持久化指南:LocalStorage、SessionStorage 等的区别与应用
  • 从零用java实现 小红书 springboot vue uniapp (4)个人主页优化