Java Swing 界面开发入门小教程
2026/8/2 6:32:37 网站建设 项目流程

一、基础概念扫盲

  1. 两大工具包分工
    Java 做桌面界面主要依赖两套工具库,功能各有侧重,配合使用:
    javax.swing(核心组件包):升级版界面工具,所有可视化窗口、按钮、输入框都由它提供,类名均以大写 J 开头,是开发的主力。
    java.awt(样式辅助包):早期界面工具,现在主要用于设置颜色、字体、尺寸、布局规则,不负责生成可视化组件。
  2. 包与导入
    package 包名:代码的文件夹分类,写在代码文件最顶部,用于管理多个代码文件,避免重名冲突。
    示例:package com07.zyf0730;
    import 导入:相当于 “借用工具”,要使用窗口、按钮等类,必须先导入对应包。
    批量导入(推荐新手用)import javax.swing.*;import java.awt.*;
    单个导入:import javax.swing.JFrame;
  3. 核心语法前提
    界面开发完全基于 Java 面向对象基础,只需记住 3 条核心:
    一个界面对应一个类:public class 类名 { }
    界面绘制逻辑封装在方法里:public void showUI() { }
    程序入口固定:public static void main(String[] args) { },在入口中创建类对象并调用绘制方法。
    二、开发前准备:固定代码骨架
    所有 Swing 界面都可以套用以下通用模板,先搭架子再填内容,能大幅减少报错。
// 1. 包声明(最顶部)packagecom07.zyf0730;// 2. 导入工具包importjavax.swing.*;importjava.awt.*;// 3. 定义界面类publicclassLoginUI{// 4. 界面绘制方法:所有窗口、组件代码都写在这里publicvoidshowUI(){// 后续代码填充区}// 5. 程序入口,固定写法publicstaticvoidmain(String[]args){LoginUIui=newLoginUI();ui.showUI();}}

三、界面开发标准步骤(分步详解)****
步骤 1:创建主窗口并设置基础属性
主窗口 JFrame 是所有组件的容器,相当于界面的 “外框”,必须优先创建。
常用属性设置:

// 创建窗口对象JFramejf=newJFrame();// 设置窗口标题(左上角文字)jf.setTitle("登录界面 V1.0");// 设置窗口尺寸:参数1=宽度,参数2=高度,单位像素jf.setSize(400,450);// 设置窗口弹出位置:参数1=距屏幕左侧距离,参数2=距屏幕顶部距离jf.setLocation(200,200);// 设置关闭规则:点击右上角叉号时,直接退出整个程序jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置布局管理器:使用流式布局,组件自动从左到右、从上到下排列FlowLayoutflow=newFlowLayout();jf.setLayout(flow);

步骤 2:创建所需组件
组件就是界面上的按钮、输入框、文字等 “零件”,按需创建即可。

运行// 文字标签:仅展示文本,不可交互JLabelnameLabel=newJLabel("账号:");JLabelpwdLabel=newJLabel("密码:");// 普通文本输入框:参数为输入框大致宽度(字符数)JTextFieldnameInput=newJTextField(35);// 密码输入框:输入内容显示为黑点JPasswordFieldpwdInput=newJPasswordField(35);// 按钮:参数为按钮上显示的文字JButtonloginBtn=newJButton("登录");// 图片组件:先加载本地图片,再放入标签中显示ImageIconheaderImg=newImageIcon("C:\\Users\\Desktop\\logo.png");JLabelimgLabel=newJLabel(headerImg);

步骤 3:将组件添加到窗口
创建好的组件必须手动添加到窗口中,添加顺序 = 界面从上到下的显示顺序。

jf.add(imgLabel);jf.add(nameLabel);jf.add(nameInput);jf.add(pwdLabel);jf.add(pwdInput);jf.add(loginBtn);

步骤 4:显示窗口
所有组件添加完成后,最后执行窗口显示,这一步必须放在所有代码末尾。

jf.setVisible(true);

四、常用组件用法速查

五、样式美化:字体与组件尺寸

  1. 字体设置(Font)
    用于修改组件文字的字体、字号、粗细。
// 语法:new Font("字体名称", 样式常量, 字号)// 样式可选:Font.PLAIN(普通)、Font.BOLD(加粗)、Font.ITALIC(斜体)FonttextFont=newFont("微软雅黑",Font.BOLD,16);// 给组件设置字体nameLabel.setFont(textFont);loginBtn.setFont(textFont);
  1. 组件尺寸设置(Dimension)
    用于单独调整按钮、输入框的宽高,不影响窗口整体大小。
// 语法:new Dimension(宽度, 高度)DimensionbtnSize=newDimension(100,40);DimensioninputSize=newDimension(280,30);// 给组件设置首选尺寸loginBtn.setPreferredSize(btnSize);nameInput.setPreferredSize(inputSize);pwdInput.setPreferredSize(inputSize);

六、完整示例:登录界面可运行代码

packagecom07.zyf0730;importjavax.swing.*;importjava.awt.*;publicclassLoginUI{publicvoidshowUI(){// 1. 创建并设置主窗口JFramejf=newJFrame();jf.setTitle("登录界面 V1.0");jf.setSize(400,450);jf.setLocation(200,200);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setLayout(newFlowLayout());// 2. 定义统一样式FontlabelFont=newFont("微软雅黑",Font.BOLD,16);DimensioninputSize=newDimension(280,30);DimensionbtnSize=newDimension(100,40);// 3. 创建组件ImageIconimg=newImageIcon("C:\\Users\\Desktop\\logo.png");JLabelimgLabel=newJLabel(img);JLabelnameLabel=newJLabel("账号:");nameLabel.setFont(labelFont);JTextFieldnameInput=newJTextField(35);nameInput.setPreferredSize(inputSize);JLabelpwdLabel=newJLabel("密码:");pwdLabel.setFont(labelFont);JPasswordFieldpwdInput=newJPasswordField(35);pwdInput.setPreferredSize(inputSize);JButtonloginBtn=newJButton("登录");loginBtn.setFont(labelFont);loginBtn.setPreferredSize(btnSize);// 4. 添加组件到窗口jf.add(imgLabel);jf.add(nameLabel);jf.add(nameInput);jf.add(pwdLabel);jf.add(pwdInput);jf.add(loginBtn);// 5. 显示窗口jf.setVisible(true);}publicstaticvoidmain(String[]args){newLoginUI().showUI();}}

七、注意事项
1.导包必须正确
按钮类用 javax.swing.JButton,不要误用 java.awt.Button,两者不兼容,会报类型错误。
2.缺少 import 语句时,所有组件类都会爆红报错。
3.窗口显示语句放最后
setVisible(true) 必须写在所有 add() 操作之后。写在前面会导致组件加载不全,窗口出现空白。
4.变量不可重复定义
同一个方法内,不能出现两个同名变量(比如两次定义 JButton btn = …),否则会报 “重复变量” 错误。
5.对象调用不能省略前缀
所有属性设置都必须通过对象调用,比如 jf.setTitle(…),不能直接写 .setTitle(…)。
6.图片路径格式正确
Windows 系统中,文件路径分隔符要用双反斜杠 \,路径错误会导致图片不显示且不报错,排查难度高。
7.关闭规则不可遗漏
必须写 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),否则关闭窗口后程序仍在后台运行,占用内存。
8.编辑器输入模式
若输入时光标变粗、输入内容会覆盖后面的文字,是误触了 Insert 键进入覆盖模式,再按一次 Insert 即可恢复正常插入模式。
9.布局必须设置
窗口不设置布局时,组件会默认铺满窗口,导致排版混乱,流式布局是新手最易上手的布局方式。
10. JFrame 定义的窗口关闭策略常量:前面的文字是常量名,后面的数字是它的实际值。
EXIT_ON_CLOSE 对应 3,意思是点击关闭按钮时退出整个程序;DISPOSE_ON_CLOSE 对应 2,是关闭当前窗口但不结束程序;HIDE_ON_CLOSE 对应 1,只是把窗口藏起来还在后台运行;DO_NOTHING_ON_CLOSE 对应 0,点关闭按钮完全没反应,得自己写事件处理逻辑才行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询