【Java】Swing

java 图形化界面 框架Frame框架Frame可以作为Java的顶级窗口来使用。Frame是AWT中Window的一个子类,是带有标题和缩放角的窗口,是属于重量级组件。Frame可以设置自己的标题、边框、菜单、大小等等。默认的Frame实例化对象都是没有大小和不可见的,必须调用setSize( )来设置大小,调用setVisible(true)来设置该窗口为可见的。 阅读详情

历史回顾:曾经的Java桌面应用

0. 前言

Java 桌面应用 一般由 Java Swing 提供。是现在已经淘汰的技术,工作中已经几乎不用了,近几年出的新版的JDK 也已不再支持 Java Swing。那我们为什么还要学习它呢?

其实 Java Swing 也是很帅的,如果您跟我一样没有前端基础,那么单凭Java Swing 就可以用纯 Java 做一些小玩意,这不,最近我的领导就用 GPT + Copilot + Java Swing 半小时就模拟出了一个QQ,帅的咧。

为什么要学习 Java Swing

  • 回顾历史,或许能对现在有新的启发
  • 对于学生考试而言,现在很多大学的Java课程依然涉及Java Swing,帮助考试
  • 学完可以自己做点小型桌面应用
  • 实在想不到写点啥,水一篇文章

参考教程
how2j的Java教程:https://how2j.cn/

如果上述学习的理由与您的情况或您的想法不匹配,那么您可以把这篇文章划走了,有一说一,实际工作真不怎么会用到 Java Swing 了。

1. Java Swing

学习 Swing 这个GUI 技术有个小前提,就是首先要了解:Swing 的窗口是基于 像素和坐标的,下文出现的Location,指的都是像素和坐标。关于GUI 的像素和坐标,读者可事先参考其他资料。

1.1 Hello Swing

使用 Java Swing 其实就是使用 javax.swing 包,直接用包里的类和方法即可,只需要知道什么方法是干什么的就行,具体常见方法我会在下面介绍,学习成本低。

我们首先来个 Hello Swing 吧:

public static void main(String[] args) {
        // 主窗口
        JFrame f = new JFrame("Hello Swing");
        // 设置窗口大小
        f.setSize(400, 300);
        // 主窗口设置位置
        f.setLocation(200, 200);
        // 设置为绝对定位
        f.setLayout(null);
        // 按钮组件
        JButton b = new JButton("Hello");
        // 设置按钮大小和位置
        b.setBounds(50, 50, 280, 30);
        // 添加按钮到主窗口
        f.add(b);
        // 设置主窗口关闭时的操作
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 显示主窗口
        f.setVisible(true);
    }

运行结果:

HelloSwing

1.2 Swing 监听器

Swing 的监听器 可以让我们 对 Swing写出来的GUI界面操作 的 时候, 通过监听器来接收我们的操作信息,并执行相应的操作。

Swing 的监听器分为按钮监听、键盘监听、鼠标监听、适配器等分类。都是为GUI交互而设计的。

1.2.1 按钮监听

通过 button 按钮 绑定 ActionListener 接口的匿名内部类。Swing的代码都很好阅读,我们举个例子:

public static void main(String[] args) {
        // main window
        JFrame f = new JFrame("Hello listener");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(null);

        // label
        JLabel l = new JLabel();
        // image for test
        ImageIcon icon = new ImageIcon("E:\\Study\\ResourceAndNotes\\Java\\PersonalNotes\\images\\reflect.png");
        // set image
        l.setIcon(icon);
        // set label size and location
        l.setBounds(50, 50, icon.getIconWidth(), icon.getIconHeight());

        // button
        JButton b = new JButton("Click me disappear icon");
        b.setBounds(50, 200, 280, 30);
        // add button listener
        b.addActionListener(e -> l.setVisible(false));

        f.add(l);
        f.add(b);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        
    }

实现的效果是,点击按钮,图片消失。

1.2.2 键盘监听

使用 KeyListener 实现键盘监听, KeyListener 的方法都是见名知意的,非常好理解:

public static void main(String[] args) {
        // window
        javax.swing.JFrame f = new javax.swing.JFrame("Hello listener");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(null);

        // label
        javax.swing.JLabel l = new javax.swing.JLabel();
        // image for test
        javax.swing.ImageIcon icon = new javax.swing.ImageIcon("E:\\Study\\ResourceAndNotes\\Java\\PersonalNotes\\images\\reflect.png");
        // set image
        l.setIcon(icon);
        // set label size and location
        l.setBounds(50, 50, icon.getIconWidth(), icon.getIconHeight());
        // add KeyListener
        f.addKeyListener(new java.awt.event.KeyListener() {
            @Override
            public void keyTyped(KeyEvent keyEvent) {
                if (keyEvent.getKeyChar() == 'a') {
                    l.setLocation(l.getX() - 10, l.getY());
                }
                if (keyEvent.getKeyChar() == 'd') {
                    l.setLocation(l.getX() + 10, l.getY());
                }
                if (keyEvent.getKeyChar() == 'w') {
                    l.setLocation(l.getX(), l.getY() - 10);
                }
                if (keyEvent.getKeyChar() == 's') {
                    l.setLocation(l.getX(), l.getY() + 10);
                }
            }
            // key pressed
            @Override
            public void keyPressed(KeyEvent keyEvent) {

            }
            // key released
            @Override
            public void keyReleased(KeyEvent keyEvent) {

            }
        });

        f.add(l);
        f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        

}

1.2.3 鼠标监听

MouseListener , 也提供了鼠标按下、释放、退出、进入、点击等事件的监听:

public static void main(String[] args) {
        // window
        javax.swing.JFrame f = new javax.swing.JFrame("Hello listener");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(null);

        // label
        javax.swing.JLabel l = new javax.swing.JLabel();
        // image for test
        javax.swing.ImageIcon icon = new javax.swing.ImageIcon("E:\\Study\\ResourceAndNotes\\Java\\PersonalNotes\\images\\reflect.png");
        // set image
        l.setIcon(icon);
        // set label size and location
        l.setBounds(50, 50, icon.getIconWidth(), icon.getIconHeight());
        // add MouseListener
        l.addMouseListener(new java.awt.event.MouseListener() {
            @Override
            public void mouseClicked(java.awt.event.MouseEvent mouseEvent) {
                System.out.println("mouse clicked");
            }

            @Override
            public void mousePressed(java.awt.event.MouseEvent mouseEvent) {
                System.out.println("mouse pressed");
            }

            @Override
            public void mouseReleased(java.awt.event.MouseEvent mouseEvent) {
                System.out.println("mouse released");
            }

            @Override
            public void mouseEntered(java.awt.event.MouseEvent mouseEvent) {
                // move image with mouse
                l.setLocation(mouseEvent.getXOnScreen() - icon.getIconWidth() / 2, mouseEvent.getYOnScreen() - icon.getIconHeight() / 2);
            }

            @Override
            public void mouseExited(java.awt.event.MouseEvent mouseEvent) {
                System.out.println("mouse exited");
            }
        });

        f.add(l);
        f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
    }

1.3 Swing 容器

我们可以将 一个窗口看作一个容器,组件都放到容器里。

我们上文提到的 Jframe 就是一个容器:

public static void main(String[] args) {
        // 主窗口
        JFrame f = new JFrame("Hello Swing");
        // 设置窗口大小
        f.setSize(400, 300);
        // 主窗口设置位置
        f.setLocation(200, 200);
        // 设置为绝对定位
        f.setLayout(null);
        // 按钮组件
        JButton b = new JButton("Hello");
        // 设置按钮大小和位置
        b.setBounds(50, 50, 280, 30);
        // 添加按钮到主窗口
        f.add(b);
        // 设置主窗口关闭时的操作
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 显示主窗口
        f.setVisible(true);
    }

除了Jframe, Swing 还提供了 JDialog 作为容器:

public static void main(String[] args) {
        // using JDialog to create a window
        javax.swing.JDialog d = new javax.swing.JDialog();
        // set window title
        d.setTitle("Hello JDialog");
        // set window size
        d.setSize(400, 300);
        // set window location
        d.setLocation(200, 200);
        // set window layout
        d.setLayout(null);
        // set window visible
        d.setVisible(true);
    }

1.4 Swing 布局

Swing 的布局由布局器提供,布局器常见的布局有:

  • FlowLayout 顺序布局
  • BorderLayout 上下左右中间的顺序布局
  • GirdLayout 网格布局器
  • CardLayout 面板

举个例子,我们做个计算器:

public class Calculator extends JFrame implements ActionListener {

    private JTextField displayField;

    public Calculator() {
        setTitle("Calculator");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 创建显示区域
        displayField = new JTextField();
        displayField.setEditable(false);
        add(displayField, BorderLayout.NORTH);

        // 创建按钮面板
        JPanel buttonPanel = new JPanel(new GridLayout(4, 4));

        String[] buttonLabels = {
                "7", "8", "9", "/",
                "4", "5", "6", "*",
                "1", "2", "3", "-",
                "0", ".", "=", "+"
        };

        for (String label : buttonLabels) {
            JButton button = new JButton(label);
            button.addActionListener(this);
            buttonPanel.add(button);
        }

        add(buttonPanel, BorderLayout.CENTER);

        pack();
        setLocationRelativeTo(null); // 居中显示
    }

    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        String currentText = displayField.getText();

        if (command.equals("=")) {
            // 计算结果
            try {
                double result = evaluateExpression(currentText);
                displayField.setText(Double.toString(result));
            } catch (Exception ex) {
                displayField.setText("Error");
            }
        } else {
            // 在当前文本后追加按钮上的标签
            displayField.setText(currentText + command);
        }
    }

    private double evaluateExpression(String expression) {
        // 使用适当的算法计算表达式的结果
        // 这里仅为示例,可以使用自己的实现或相关库来计算表达式
        return new Object() {
            int pos = -1, ch;

            void nextChar() {
                ch = (++pos < expression.length()) ? expression.charAt(pos) : -1;
            }

            boolean eat(int charToEat) {
                while (ch == ' ') nextChar();
                if (ch == charToEat) {
                    nextChar();
                    return true;
                }
                return false;
            }

            double parse() {
                nextChar();
                double x = parseExpression();
                if (pos < expression.length()) throw new RuntimeException("Unexpected: " + (char) ch);
                return x;
            }

            double parseExpression() {
                double x = parseTerm();
                for (;;) {
                    if (eat('+')) x += parseTerm(); // 加法
                    else if (eat('-')) x -= parseTerm(); // 减法
                    else return x;
                }
            }

            double parseTerm() {
                double x = parseFactor();
                for (;;) {
                    if (eat('*')) x *= parseFactor(); // 乘法
                    else if (eat('/')) x /= parseFactor(); // 除法
                    else return x;
                }
            }

            double parseFactor() {
                if (eat('+')) return parseFactor(); // 正号
                if (eat('-')) return -parseFactor(); // 负号

                double x;
                int startPos = this.pos;
                if (eat('(')) { // 括号
                    x = parseExpression();
                    eat(')');
                } else if ((ch >= '0' && ch <= '9') || ch == '.') { // 数字
                    while ((ch >= '0' && ch <= '9') || ch == '.') nextChar();
                    x = Double.parseDouble(expression.substring(startPos, this.pos));
                } else {
                    throw new RuntimeException("Unexpected: " + (char) ch);
                }

                return x;
            }
        }.parse();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            Calculator calculator = new Calculator();
            calculator.setVisible(true);
        });
    }
}

这个计算器使用了BorderLayout布局管理器来实现

1.5 Swing 组件

Swing 提供了丰富的 GUI 组件,包括按钮、标签、文本框、复选框、单选框、下拉框、列表、表格等等。通过使用这些组件,我们可以构建出功能丰富的用户界面。

例如,下面是一个使用表格组件的示例代码,展示如何创建一个简单的表格并填充数据:

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class TableExample extends JFrame {

    private JTable table;

    public TableExample() {
        setTitle("Table Example");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建表格模型和表格
        DefaultTableModel model = new DefaultTableModel();
        model.addColumn("Name");
        model.addColumn("Age");
        model.addRow(new Object[]{"Alice", 25});
        model.addRow(new Object[]{"Bob", 30});
        table = new JTable(model);

        // 将表格放置在滚动面板中
        JScrollPane scrollPane = new JScrollPane(table);

        // 将滚动面板添加到窗口中
        getContentPane().add(scrollPane);

        pack();
        setLocationRelativeTo(null); // 居中显示
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            TableExample frame = new TableExample();
            frame.setVisible(true);
        });
    }
}

2. 总结与补充

以上介绍了 Java Swing 的基本知识点,包括创建窗口、使用布局管理器、使用组件、注册监听器等。由于Java Swing 已 被淘汰,且调用 Swing 也仅仅是直接拿来用,并不涉及更多的开发思想,目前这部分技术已成历史,成为了我们选学的部分。当然,当今依然有很多高校在教Java Swing,其目的更多地是利用这个曾经占有一定市场份额的GUI技术带同学们入门,以及应付考试。

如果你对 Java Swing 很感兴趣,想单纯地用 Swing 实现自己的桌面应用,那么可以自行查阅支持 Swing 的 JDK API 文档。

标题:Java Swing:全面了解和使用 Java Swing是Java平台上的一个强大的图形用户界面工具包,具有丰富的组件和功能。Java Swing是Java平台上的一个图形用户界面(GUI)工具包,提供了一套丰富的组件和功能,用于开发跨平台的桌面应用程序。本文将介绍Java Swing的原理、基本概念、使用方法和常见应用场景,并给出相应的代码示例,以帮助读者全面理解和应用Java Swing。Java Swing是基于Java AWT(Abstract Window Toolkit)构建的,它提供了一系列轻量级的、可定制的GUI组件。 阅读详情

相关推荐

SAP物料分类账(ML)避坑指南:激活顺序错了怎么办?从CKMSTART到差异分摊的完整流程

本文详细解析SAP物料分类账(ML)的正确激活顺序与配置流程,帮助用户避免常见陷阱如'LKW无科目'、'在制品重估失败'等问题。从CKMSTART到差异分摊的完整流程,涵盖关键配置节点、典型报错分析与应急处理方案,确保产品成本控制(CO-PC)模块的顺利运行。

weixin_42524708的博客 258

Java-Swing编程介绍

总体介绍 组件(控件)和容器 组件(控件) 容器 布局管理 第一个窗口程序 布局管理BorderLayout和FlowLayout介绍 学习layout的小技巧 控件JButton和JTextField介绍 JButton介绍 不新建类来实现ActionLisner接口 介绍JTextField类 内部类和匿名内部类 内部类 匿名内部类 参考 总体介绍 Sw...

cb_east的博客 5万+

【LaTeX PPT模板集】Beamer主题与配色使用教程

【LaTeX PPT模板集】Beamer主题与配色使用教程

Xminyang的博客 1万+

Java图形化界面编程超详细知识点(5)——Swing编程

本篇文章主要介绍Java图形化界面编程中Swing类库的详细知识点总结,方便大家在图形化界面编程时快速找到自己所需要的方法,希望对大家完成课设有所帮助。

m0_66908465的博客 1万+

从零搭建ECG心电图仪:模拟前端电路设计与噪声对抗实战

在电子工程和生物医学信号处理领域,微弱信号的采集与放大是核心挑战。其基本原理在于利用高精度模拟电路,从强大的环境噪声中提取出有用的差分信号。这项技术的核心价值在于将理论上的传感器信号转化为稳定、可靠的可用数据,是连接物理世界与数字系统的关键桥梁。在医疗监护、工业传感和科学测量等场景中,高性能的模拟前端设计直接决定了整个系统的精度与可靠性。本文聚焦于生物电信号采集这一具体应用,深入探讨如何运用差分放大器、低通滤波器和陷波滤波器等经典模块,构建一个能够有效对抗工频干扰和接触噪声的实用电路,最终实现从人体体表清晰

weixin_30616969的博客 460

AI影像组学在结直肠癌诊疗中的应用:从特征提取到临床决策

影像组学通过高通量计算从医学影像中提取定量特征,揭示肿瘤内部的微观生物学行为,这些特征反映了纹理异质性、形状不规则度等影像表型。其核心原理在于将图像数据转化为可分析的数字特征,结合机器学习算法进行模式识别,从而实现对疾病状态的精准预测。这一技术的价值在于能够无创、定量地评估肿瘤特性,为精准医疗提供关键支持。在临床实践中,AI驱动的影像组学模型广泛应用于结直肠癌的诊疗全链条,包括肿瘤良恶性鉴别、基因突变预测、治疗反应评估和预后分析等场景。通过整合影像组学特征与临床数据,可以构建预测模型,辅助医生进行更准确的诊

weixin_28295799的博客 409

JAVA SWING

最近在写一个java的小项目,用到了Java swing的技术,本篇博客对Java swing作一个简单介绍,以及举一些简单的例子。Java Swing是Java平台的用户界面(UI)工具包。它提供了一组图形用户界面(GUI)组件,例如按钮、文本框、标签等,以及布局管理器,用于创建基于桌面的应用程序。在本篇博客中,我将介绍Java Swing的基本概念和用法。Swing是Java平台的一部分,它的主要目的是提供一个跨平台的用户界面工具包。Swing提供了一组GUI组件和布局管理器,用于构建桌面应用程序。

a545__27的博客 4919

麒麟 ARMv10 SP3 安装 Oracle 19c 官方文档 或 教程

在麒麟ARMv10 SP3系统上安装Oracle 19c需要特别注意架构兼容性。

qq_43032338的博客 2941

java swing 控件_Java Swing组件

一、 java swing 组件技术简介1.swing的特性l 是AWT的扩展,swing比AWT提供了更多的组件和外观l 它是纯java代码编写(除了JFrame、JDialog、JApplet),因此与平台无关2.AWT的缺点组件少而且是本地代码实现(无法实现跨平台)3.swing 和 AWT相比一个重要的的改进在于swing把一个组件的处理分为图形部分和数据处理部分(MVC...

weixin_28758189的博客 930

大模型角色提示词写得再严密,也能被绕过?我用攻击者思维把自己吓了一跳!

很多人以为提示词是“只要写清楚了,模型就能理解”,但实际上——模型并不具备严格的规则意识,它只是在预测下一句话。所以我们必须从“攻防”角度出发,设计更强的防护机制。我这次就是亲身踩坑,用红队思维模拟攻击,才意识到原来提示词注入这么容易中招。你如果也在做 AI 应用、角色系统、提示词驱动的功能,建议你也用类似方式测试一下,不然被绕了都不知道。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1028

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

Yolo8行人车辆目标检测实战分享 完整项目代码可直接运行

1294

【Java swing】如何配置Java swing主题

【Java swing】如何配置Java swing主题主题种类Metal风格 (默认)Windows风格Windows Classic风格Motif风格Mac风格 (需要在相关的操作系统上方可实现)GTK风格 (需要在相关的操作系统上方可实现)可跨平台的默认风格当前系统的风格简单实现代码示例代码 主题种类 Metal风格 (默认) String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel"; UIManager.setLookAndFee(

猫巳的博客 1629

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

swing java_Java Swing 介绍

Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而...

weixin_39562606的博客 441

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java swing fx_Java的Swing程序是如何调用FX代码

当我们完成了MyScene类后,可以开始写java的主程序了,这是个标准的Swing程序中调用JavaFX代码如下:package swingtest;import java.awt.*;import javax.swing.*;import org.jfxtras.scene.SceNEToJComponent;public class JavaFXToSwingTest extends JFr...

weixin_34644072的博客 532

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java 什么是swing_Java-Swing是什么?

我很喜欢一个有背景动画特效的(登录或者注册等模板的)透明页面,能给我自身一种积极上进的震撼力希望我能慢慢的理解swing(透明的小模块)到底怎么用Swing 类库结构Swing 组件都采用 MVC(Model-View-Controller,即模型-视图-控制器)的设计,实现 GUI 组件的显示逻辑和数据逻辑的分离,从而允许程序员自定义 Render 来改变 GUI 组件的显示外观,以提供更多的灵...

weixin_39927214的博客 196

java swing 总结_对Java 中Swing的小总结

最近把Swing里的内容稍微看了一下,Swing里的基本元素有:1.容器顶层容器顶层容器常见的有两种:I.窗体(JFrame),它可以直接出现在系统桌面上,其它组件必须直接或间接借助顶层容器才能显示出来。II.对话框(JDialog),这个比较常见。非顶层容器非顶层容器既可以做容器,又可以做组件,如面板(JPanel)。一般说来不直接将普通组件直接添加到顶层容器中,虽然可以这么做。而是把复杂的界面...

weixin_36387422的博客 692

Java——Swing界面,接口和事件

Swing界面,接口和事件

seeyou__的博客 5430

java swing流程图_Java Swing 介绍

Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而...

weixin_39851279的博客 675

java中swing是什么_java中swing是什么

Swing是一个用于开发Java应用程序用户界面的开发工具包(GUI工具包),是JAVA基础类的一部分;它包括了图形用户界面(GUI)器件,如:文本框,按钮,分隔窗格和表。Swing以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为...

weixin_35006433的博客 825

java8的swing_java swing

Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而...

weixin_39524959的博客 345

Java Swing 快速入门

Java Swing 快速入门

Shipley_Leo的博客 1650

java之swing_JAVA之Swing设计

import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.J...

weixin_34620780的博客 244

什么是java swing_Java干货:解读什么是swing

swing是java GUI应用程序,也就是java做的桌面应用。运行swing程序要求用户电脑上有java环境,这一点不太现实也不方便。现在的java主要以web方向为主,做移动应用和网站开发,分布式、多线程、高并发等都是java程序员发展的方向。虽然企业开发中用到的不多,事实上在我十几年的开发生涯中没有用到过,我的朋友也没有做swing的。但也不能说学习它就没有用。比如swing中的控件,如表...

weixin_30240263的博客 3759

java swing是什么_什么是java swing?

Swing是一个用于开发Java应用程序用户界面的开发工具包(GUI工具包),是JAVA基础类的一部分;它包括了图形用户界面(GUI)器件,如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台...

weixin_42492543的博客 879

java swing 按键_Java Swing 快捷键

Java Swing 快捷键给Java Swing编程中按钮或者其他组件事件添加快捷键的方法:Component.setAccelerator(KeyStroke.getKeyStroke(‘Q’, InputEvent.CTRL_MASK));这个快捷键是ctrl+Q,通过这个方法即可实现点击操作与ctrl+Q快捷键操作同样的效果为JButton设置ctrl快捷键this.jButton_sa...

weixin_29388659的博客 1135
上一篇: 【GitHub】connect to host github.com port 22: Connection refused 的解决方案
下一篇: 【前端】CSS
CoderSharry
博客等级 码龄4年 515粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值