iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java Swing基础使用教程
  • 601
分享到

Java Swing基础使用教程

java 2023-09-02 20:09:20 601人浏览 泡泡鱼
摘要

Java Swing是Java语言中的一个GUI工具包,它提供了一系列的组件和容器,可以用于创建各种桌面应用程序。本教程将介绍Java Swing的基本概念、组件和容器,以及如何使用它们来创建一个简单

Java Swing是Java语言中的一个GUI工具包,它提供了一系列的组件和容器,可以用于创建各种桌面应用程序。本教程将介绍Java Swing的基本概念、组件和容器,以及如何使用它们来创建一个简单的GUI应用程序。

一、Swing的基本概念

  1. 组件(Component):Swing中的组件是GUI界面中的基本元素,例如按钮、文本框、标签等。

  2. 容器(Container):Swing中的容器是一种特殊的组件,它可以包含其他组件,例如面板、框架等。

  3. 布局管理器(Layout Manager):Swing中的布局管理器用于控制组件在容器中的位置和大小,常用的布局管理器有FlowLayout、BorderLayout、GridLayout等。

  4. 事件(Event):Swing中的事件是用户与组件交互时发生的动作,例如点击按钮、输入文本等。

  5. 监听器(Listener):Swing中的监听器用于监听事件的发生,并执行相应的操作,例如点击按钮时执行某个方法。

二、Swing的组件

  1. 标签(JLabel):用于显示文本或图像。
JLabel label = new JLabel("Hello, World!");
  1. 按钮(JButton):用于触发事件。
JButton button = new JButton("Click me!");button.addActionListener(new ActionListener() {    public void actionPerfORMed(ActionEvent e) {        System.out.println("Button clicked!");    }});
  1. 文本框(JTextField):用于输入文本。
JTextField textField = new JTextField(20);String text = textField.getText();
  1. 复选框(JCheckBox):用于选择一个或多个选项。
JCheckBox checkBox1 = new JCheckBox("Option 1");JCheckBox checkBox2 = new JCheckBox("Option 2");
  1. 单选框(JRadioButton):用于选择一个选项。
JRadioButton radioButton1 = new JRadioButton("Option 1");JRadioButton radioButton2 = new JRadioButton("Option 2");ButtonGroup group = new ButtonGroup();group.add(radioButton1);group.add(radioButton2);
  1. 下拉框(JComboBox):用于选择一个选项。
String[] options = {"Option 1", "Option 2", "Option 3"};JComboBox comboBox = new JComboBox(options);String selectedOption = (String) comboBox.getSelectedItem();
  1. 列表框(JList):用于显示一个列表。
String[] options = {"Option 1", "Option 2", "Option 3"};JList list = new JList(options);String selectedOption = (String) list.getSelectedValue();
  1. 滑动条(jslider):用于选择一个数值。
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);int value = slider.getValue();
  1. 进度条(JProgressBar):用于显示一个进度。
JProgressBar progressBar = new JProgressBar();progressBar.setValue(50);

三、Swing的容器

  1. 面板(JPanel):用于包含其他组件。
JPanel panel = new JPanel();panel.add(new JLabel("Hello, World!"));panel.add(new JButton("Click me!"));
  1. 框架(JFrame):用于创建一个窗口。
JFrame frame = new JFrame("My Application");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);frame.setVisible(true);
  1. 对话框(JDialog):用于创建一个对话框。
JDialog dialog = new JDialog(frame, "My Dialog", true);dialog.setSize(200, 100);dialog.setVisible(true);

四、Swing的布局管理器

  1. 流式布局(FlowLayout):按照组件添加的顺序排列组件。
JPanel panel = new JPanel(new FlowLayout());panel.add(new JLabel("Name:"));panel.add(new JTextField(20));panel.add(new JButton("Submit"));
  1. 边界布局(BorderLayout):将容器分为5个区域,分别为北、南、东、西和中。
JPanel panel = new JPanel(new BorderLayout());panel.add(new JLabel("North"), BorderLayout.NORTH);panel.add(new JLabel("South"), BorderLayout.SOUTH);panel.add(new JLabel("East"), BorderLayout.EAST);panel.add(new JLabel("West"), BorderLayout.WEST);panel.add(new JLabel("Center"), BorderLayout.CENTER);
  1. 网格布局(GridLayout):将容器分为若干行若干列的网格。
JPanel panel = new JPanel(new GridLayout(2, 2));panel.add(new JLabel("1"));panel.add(new JLabel("2"));panel.add(new JLabel("3"));panel.add(new JLabel("4"));

五、下面是一个使用Swing创建的简单GUI应用程序的完整示例代码:

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyApplication {    public static void main(String[] args) {        JFrame frame = new JFrame("My Application");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        frame.setSize(400, 300);        JPanel panel = new JPanel(new GridLayout(3, 2));        panel.add(new JLabel("Name:"));        panel.add(new JTextField(20));        panel.add(new JLabel("Age:"));        panel.add(new JTextField(20));        panel.add(new JLabel("Gender:"));        String[] genders = {"Male", "Female"};        JComboBox comboBox = new JComboBox(genders);        panel.add(comboBox);        JButton button = new JButton("Submit");        button.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                String name = ((JTextField) panel.getComponent(1)).getText();                String age = ((JTextField) panel.getComponent(3)).getText();                String gender = (String) comboBox.getSelectedItem();                JOptionPane.showMessageDialog(frame, "Name: " + name + "\nAge: " + age + "\nGender: " + gender);            }        });        frame.add(panel, BorderLayout.CENTER);        frame.add(button, BorderLayout.SOUTH);        frame.setVisible(true);    }}

这个应用程序包含一个窗口,窗口中包含一个面板和一个按钮。面板中包含3个标签、3个文本框和一个下拉框。当用户点击按钮时,程序会获取文本框和下拉框中的值,并弹出一个对话框显示这些值。

来源地址:https://blog.csdn.net/qq_36901092/article/details/130075998

--结束END--

本文标题: Java Swing基础使用教程

本文链接: https://www.lsjlt.com/news/391365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Swing基础使用教程
    Java Swing是Java语言中的一个GUI工具包,它提供了一系列的组件和容器,可以用于创建各种桌面应用程序。本教程将介绍Java Swing的基本概念、组件和容器,以及如何使用它们来创建一个简单...
    99+
    2023-09-02
    java
  • Java基础入门Swing中间容器的使用
    目录Java基础入门 Swing中间容器下面举例说明一下JScrollPane的方法Java Swing顶层容器类Swing拥有三个常用的顶层容器类Java基础入门 Swing中间容...
    99+
    2022-11-12
  • JavaScriptTypescript基础使用教程
    目录简介安装安装命令使用原因TypeScript类型概述JS原有的类型TS新增的类型类型别名泛型简介 typescript是微软公司开发的开源编程语言,Type+Javascript...
    99+
    2022-12-08
    JavaScript Typescript JS Typescript基本使用
  • Java基础学习之Swing事件监听
    目录一、初始代码架构二、需求分析2.1 写监听器2.2 发现问题2.3 使用匿名内部类优化代码2.4 优化完之后发现还是不是很优雅2.5 使用Lambda表达式再优化2.6 最终的代...
    99+
    2022-11-12
  • Java Swing最详细基础知识总结
    目录一、简介二、Swing 组件的层次结构三、Swing组件3.1 JFrame窗体组件3.2 JDialog窗体组件3.3 JLabel组件3.4 文本域3.5 按钮四.布局管理器...
    99+
    2022-11-12
  • Java 8 Stream API 基础教程
    作者:禅与计算机程序设计艺术 1.简介 1995年4月1日,Java编程语言问世,被广泛应用于各个领域。Java平台提供了面向对象的编程能力、安全性、健壮性和可移植性。作为第一个支持动态类型和自动内存...
    99+
    2023-10-09
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • java基础教程之接口
    定义:接口就是多个类的共有规范(里面的抽象方法),是一种引用数据类型。小提示:基本数据类型包括数值型(整数和浮点数)、字符型、布尔型。格式:public interface 接口名称{ //接口内容 }备注:接口.java编译后仍然是接口...
    99+
    2019-04-11
    java入门 java 接口
  • Java技术教程.基础篇
    Java技术教程.基础篇: Detail:Java技术教程.基础篇[@more@]...
    99+
    2023-06-03
  • reactrouter零基础使用教程
    目录安装配置路由添加一个新页面测试路由配置未找到的路由跳转页面通过 js通过 dom嵌套页面安装 既然学习 react router 就免不了运行 react 安装 react np...
    99+
    2022-11-13
  • Java学习教程:Java基础——反射
    什么是反射?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。例如:我们在开发的过程当中,...
    99+
    2023-06-03
  • CobaltStrike使用教程详解(基础)
    声明:本文仅限学习研究讨论,切忌做非法乱纪之事! 大家好,今天简单来聊聊CobaltStrike,这是我们后渗透阶段必不可少的神器。 Cobalt Strike 是一款流行的渗透测试工具,广泛用于红队操作和渗透测试。它由Raphael Mu...
    99+
    2023-09-13
    php 开发语言
  • Vue electron零基础使用教程
    需求:给vue项目加一个外壳(electron),顾名思义也就是使用electron应用程序运行vue项目,直接将写好上线的vue项目在线地址放入electron程序中即可 操作步骤...
    99+
    2022-11-13
    Vue electron Vue electron
  • Java基础教程之数组的定义与使用
    目录一.数组的基本概念二.数组的声明三.数组的创建及初始化1.数组的创建2.数组的初始化四.访问数组元素 五.for each 循环 六.数组的拷贝 七.数组排序 八.二维数组 总结...
    99+
    2022-11-12
  • Python基础教程
    6.4.5 参数收集的逆过程 假设有如下函数: def add(x,y): return x+y 比如说有个包含由两个相加的数字组成的元组: params = (1,2) 使用*运算符对参数进行“分配”,不过是在调用而不是在定义时使用: ...
    99+
    2023-01-31
    基础教程 Python
  • Java基础教程之整数运算
    目录引言溢出自增/自减移位运算位运算运算优先级类型的自动提升与强制转型练习小结总结引言 Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。例如...
    99+
    2022-11-13
  • Android Studio使用教程(四):Gradle基础
    其实很早之前也写了一篇Gradle的基础博客,但是时间很久了,现在Gradle已经更新了很多,所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下,小伙伴...
    99+
    2022-06-06
    Android Studio studio gradle 教程 Android
  • VueX安装及使用基础教程
    目录1、安装vuex依赖包2、导入vuex包3、创建store对象4、将store对象挂载到vue实例中(1)、State:(2)、Mutations:(3)、Actions:(4)...
    99+
    2022-11-13
  • pyqt5教程QGraphicsScene及QGraphicsView使用基础
    效果图: from PyQt5.QtCore import Qt, QRectF from PyQt5.QtGui import QColor, QPen, QBrush, Q...
    99+
    2022-11-12
  • ASP.NET CORE基础教程
    目录第一课 基本概念第二课 控制器的介绍第三课 视图与表单第四课 数据验证第五课 路由规则第六课 应用发布与部署源码地址第一课 基本概念 基本概念Asp.Net Core Mvc是....
    99+
    2022-11-13
  • JavaScript 基础教程 (转)
    JavaScript 基础教程 (转)[@more@]Javascript 基础教程XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />今天时间...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作