首页 > 编程语言 >软构笔记-Java Swing学习

软构笔记-Java Swing学习

时间:2023-04-30 13:34:15浏览次数:36  
标签:JFrame Java frame 软构 Swing new JButton

Java Swing 教程

Java Swing 是 Java 平台的一个 GUI 工具包,提供了各种组件和工具类,用于创建漂亮的用户界面。

安装 Java Swing

Java Swing 是 Java 标准库的一部分,因此无需安装额外的软件包。只需要安装 Java 开发工具包(JDK),就可以开始使用 Java Swing 开发 GUI 应用程序了。

创建 GUI 应用程序

要创建 GUI 应用程序,需要创建一个 JFrame 对象,并将其设置为应用程序的主窗口。然后,可以向 JFrame 对象中添加其他组件,如 JButton、JLabel、JTextField 等。

下面是一个简单的 Java Swing 应用程序的示例代码:

import javax.swing.*;

public class HelloWorldSwing {
    private static void createAndShowGUI() {
        // 创建 JFrame 对象
        JFrame frame = new JFrame("HelloWorldSwing");

        // 设置关闭窗口时的操作
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加 "Hello, world!" 标签
        JLabel label = new JLabel("Hello, world!");
        frame.getContentPane().add(label);

        // 显示窗口
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        // 在 EDT 中运行 GUI 代码
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }
}

在上面的示例代码中,我们首先创建了一个 JFrame 对象,并设置了窗口的标题和关闭窗口时的操作。然后,我们创建了一个 JLabel 对象,并将其添加到 JFrame 对象的内容面板中。最后,我们调用 pack() 方法调整窗口大小,并将窗口设置为可见。

布局组件

Java Swing 提供了几种布局管理器,用于将组件布局在容器中。常见的布局管理器包括 BorderLayout、FlowLayout、GridLayout、BoxLayout 等。可以根据需要选择适合的布局管理器。

下面是一个使用 BorderLayout 布局管理器的示例代码:

import javax.swing.*;

public class BorderLayoutExample {
    private static void createAndShowGUI() {
        // 创建 JFrame 对象
        JFrame frame = new JFrame("BorderLayoutExample");

        // 设置关闭窗口时的操作
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加组件
        frame.add(new JButton("North"), BorderLayout.NORTH);
        frame.add(new JButton("South"), BorderLayout.SOUTH);
        frame.add(new JButton("East"), BorderLayout.EAST);
        frame.add(new JButton("West"), BorderLayout.WEST);
        frame.add(new JButton("Center"), BorderLayout.CENTER);

        // 显示窗口
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        // 在 EDT 中运行 GUI 代码
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }
}

在上面的示例代码中,我们创建了一个 JFrame 对象,并向其中添加了五个 JButton 对象。
这些 JButton 对象被添加到 JFrame 对象的五个不同位置(北、南、东、西、中心),使用 BorderLayout 布局管理器进行布局。

响应用户操作

Java Swing 提供了多种事件处理机制,可以响应用户操作,例如单击按钮、输入文本等。可以通过添加事件监听器来处理这些事件。

下面是一个使用 ActionListener 处理按钮单击事件的示例代码:

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ButtonExample {
    private static void createAndShowGUI() {
        // 创建 JFrame 对象
        JFrame frame = new JFrame("ButtonExample");

        // 设置关闭窗口时的操作
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加按钮
        JButton button = new JButton("Click me!");
        frame.getContentPane().add(button);

        // 添加事件监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(frame, "Hello, world!");
            }
        });

        // 显示窗口
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        // 在 EDT 中运行 GUI 代码
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }
}

在上面的示例代码中,我们创建了一个 JButton 对象,并添加了一个 ActionListener,当用户单击按钮时,会弹出一个对话框,显示 "Hello, world!"。

总结

Java Swing 是一个强大的 GUI 工具包,提供了丰富的组件和工具类,用于创建漂亮的用户界面。介绍了 Java Swing 的基础知识,包括如何创建和布局组件、如何响应用户操作、如何处理事件等。

标签:JFrame,Java,frame,软构,Swing,new,JButton
From: https://www.cnblogs.com/blogstb/p/17365180.html

相关文章

  • IDEA报错:Internal error :java.lang.illegalAccessErrorjiang
    IDEA报错:Internalerror:java.lang.illegalAccessErrorjiang报错Internalerror:java.lang.illegalAccessErrorjiang原因及解决方法今天在IDEA运行一个新项目时发生了这个报错,原因是该项目使用较新的JDK17版本,而我一直使用的IDEA2019.3.5不支持JDK17,将IDEA版本更换为2021.2.......
  • Java根据Integer数组(有null值)递归构造二叉树
    二叉树:publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intval,TreeNodeleft,TreeNoderight){this.val=val;this.l......
  • java-正则表达式判断手机号
    要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188联通:130、131、132、152、155、156、185、186......
  • Java二维数组
    二维数组二维数组的应用场景:但我们需要把数据分组管理的时候,就需要用到二维数组二维数组初始化:1、静态初始化:格式:数据类型[][]数组名=new数据类型[][]{{元素1,元素2},{元素1,元素2}};eg:int[][]arr=newint[][]{{11,22},{33,44}}简化格式:数据类型[][]数组名={{元素1......
  • java io流 高级流
    转换流是字符流和字节流之间的桥梁转换输入流InputSteamReader转换输出流OutputStreamWriter作用1:指定字符集读写(JDK11之后淘汰)JDK11之后可直接用字节流的构造方法//指定GBK的编码读取数据FileReaderfr=newFileReader(FilefileName,Charset.forName("GBK......
  • javaScript基础之 --- 作用域和闭包
    本文是我学习《你所不知道的javaScript上卷》的读书笔记的整理。更多详细内容,请微信搜索“前端爱好者“,戳我查看。作用域和闭包作用域是什么javaScript工作原理中的角色引擎-从头到尾负责整个javascript程序的编译及执行过程编译器-负责语法分析及代码生成......
  • 【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介模板方法模式(TemplateMethodPattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法,从而对剩余的逻辑有......
  • Java Lambda Stream
    javalist中的字符是否包括在另一个list中,::方法使用::方法使用条件:lambada表达式的主体仅包含一个表达式,且lambada表达式只调用一个已经存在的方法;被引用的方法的参数列表与lambada表达式的输入输出一致以下是Java8中方法引用的一些语法:静态方法引用(s......
  • Java学习2——第四-六次题目集的分析与总结
     一.前言 本次Blog是对java学习中第二阶段练习的一个总结,作为刚学习JAVA的小白,以下依旧只是本人作为普通学生,以当前能力和状态所做出的总结和分析,不足之处也欢迎各位大佬的指正! 这次的三个题目集,题量除了题目集六很少外,其它都是正常数量,当然题目集六的题也是最难的。总体难......
  • JavaWeb回顾与小结(五)
    Mybatis基础操作环境准备工作准备数据库表创建一个新的springboot工程,选择引入对应的起步依赖(mybatis,mysql驱动,lombok)application.properties中引入数据库连接信息创建对应的实体类Emp(实体类属性采用驼峰命名)准备Mapper接口EmpMapper根据主键删除SQL语句delete......