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

Java Swing 自定义JOptionPane

运行后的样式

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class demoB {public static void main(String[] args) {SwingUtilities.invokeLater(() -> {JFrame jf = new JFrameDemo();jf.setVisible(true);});}static class JFrameDemo extends JFrame {private JButton button;public JFrameDemo() {setTitle("主窗口");setSize(400, 300);setDefaultCloseOperation(EXIT_ON_CLOSE);setLocationRelativeTo(null);button = new JButton("打开对话框");button.addActionListener(new DialogListener());getContentPane().add(button, BorderLayout.CENTER);}public JButton getJButton() {return button;}}static class DialogListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// 主面板(设置内边距)JPanel mainPanel = new JPanel(new GridLayout(2, 1, 5, 10)); // 行间距10像素mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // 外边距// 创建两行输入区域mainPanel.add(createInputRow("按钮1"));mainPanel.add(createInputRow("按钮2"));// 显示对话框JOptionPane.showOptionDialog(null,mainPanel,"标题",JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,new Object[]{},  // 必须空数组null);}// 创建单行布局(核心修改部分)private JPanel createInputRow(String buttonText) {JPanel panel = new JPanel(new BorderLayout(10, 0)); // 水平间距10像素JTextField textField = new JTextField();textField.setPreferredSize(new Dimension(200, 30)); // 固定高度30JButton button = new JButton(buttonText);button.setPreferredSize(new Dimension(80, 30));    // 固定高度30panel.add(textField, BorderLayout.CENTER);panel.add(button, BorderLayout.EAST);return panel;}}
}

http://www.lryc.cn/news/2386685.html

相关文章:

  • 项目亮点 封装request请求模块
  • 通过 Terraform 构建您的第一个 Azure Linux 虚拟机
  • Linux连接服务器全攻略:从基础到进阶
  • pg库分表操作步骤- PostgreSQL 分区表
  • 讯飞AI相关sdk集成springboot
  • 在麒麟系统(Kylin OS)上安装`geckodriver`
  • 【图像大模型】Stable Diffusion XL:下一代文本到图像生成模型的技术突破与实践指南
  • [闲谈]C语言的面向对象
  • C 语言指针之手写内存深度剖析与手写库函数:带你从0开始手撸库 附录1.5 万字实战笔记
  • C#高级:Winform桌面开发中CheckedListBox的详解
  • 【Java学习笔记】final关键字
  • AI学习笔记二十八:使用ESP32 CAM和YOLOV5实现目标检测
  • 免费分享50本web全栈学习电子书
  • 【prometheus+Grafana篇】基于Prometheus+Grafana实现MySQL数据库的监控与可视化
  • 全链路解析:影刀RPA+Coze API自动化工作流实战指南
  • 高阶数据结构——哈希表的实现
  • window 显示驱动开发-报告渲染操作的可选支持
  • 2025 年网络安全趋势报告
  • uniapp 条件筛选
  • pytorch问题汇总
  • 开发过的一个Coding项目
  • 数据仓库维度建模详细过程
  • python打卡day37
  • Redis 5.0.10 集群部署实战(3 主 3 从,三台服务器)
  • 各个网络协议的依赖关系
  • OSC协议简介、工作原理、特点、数据的接收和发送
  • 区块链可投会议CCF C--APSEC 2025 截止7.13 附录用率
  • 【数字图像处理】_笔记
  • 从0开始学习R语言--Day10--时间序列分析数据
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的产品驱动型增长策略研究