Swing之Jframe窗体、 JDialog弹窗、标签、面板、按钮(图片按钮,单选框,多选框)、列表(下拉框,列表框)、文本框、密码框

2023-11-20

Swing

Jframe窗体

import javax.swing.*;
import java.awt.*;

public class JFrameDemo {
    //init() 初始化
    public void init(){
        JFrame frame = new JFrame("这是一个JFrame窗口");
        frame.setVisible(true);
        frame.setBounds(100, 100, 200, 200);
        //frame.setBackground(Color.pink);
        //设置一个容器
        frame.getContentPane().setBackground(Color.pink);
        //设置文字
        JLabel jLabel = new JLabel("阿涛来了");
        frame.add(jLabel);

        //让文本标签水平居中
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);

        //关闭事件
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        //建立一个窗口
        new JFrameDemo().init();
    }
}

JDialog弹窗

弹窗默认有关闭事件!

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

//主窗口
public class DialogDemo extends JFrame {
    public static void main(String[] args) {
        new DialogDemo();
    }
    public DialogDemo() {
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setSize(600, 600);

        //放东西,容器
        Container container = this.getContentPane();

        //绝对布局
        container.setLayout(null);

        //按钮
        JButton button = new JButton("点击弹出一个对话框");
        button.setBounds(30, 30, 200, 60);

        //监听器
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //弹窗
                new MyDialog();
            }
        });
        container.add(button);
    }
}

//弹窗的窗口
class MyDialog extends JDialog{
    public MyDialog() {
        this.setVisible(true);
        this.setBounds(100,100,500,500);
        //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        Container container = this.getContentPane();
        container.setLayout(null);
        container.add(new Label("阿涛学JAVA"));
    }
}

标签

Icon标签:

import javax.swing.*;
import java.awt.*;

public class IconDemo extends JFrame implements Icon {

    private int width;
    private int height;

    public IconDemo() {
    }

    public IconDemo(int width, int height) {
        this.width = width;
        this.height = height;
    }

    public void init(){
        IconDemo iconDemo = new IconDemo(15, 15);
        //图标放在标签上,也可以放在按钮上
        JLabel label = new JLabel("icontest", iconDemo, SwingConstants.CENTER);
        Container container = getContentPane();
        container.add(label);

        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.fillOval(x,y,width,height);
    }

    @Override
    public int getIconWidth() {
        return this.width;
    }

    @Override
    public int getIconHeight() {
        return this.height;
    }

    public static void main(String[] args) {
        new IconDemo().init();
    }
}

ImageIcon标签:

import javax.swing.*;
import java.awt.*;
import java.net.URL;


public class ImageIconDemo extends JFrame {
    public ImageIconDemo() {
        //获取图片的地址
        JLabel label = new JLabel("ImageIcon");
        URL url = ImageIconDemo.class.getResource("tx.png");

        ImageIcon imageIcon = new ImageIcon(url);//命名不要冲突
        label.setIcon(imageIcon);
        label.setHorizontalAlignment(SwingConstants.CENTER);

        Container container = getContentPane();
        container.add(label);

        setVisible(true);
        setBounds(100, 100, 500, 500);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        new ImageIconDemo();
    }
}

面板

import javax.swing.*;
import java.awt.*;

public class JPanelDemo extends JFrame {
    public JPanelDemo() {
        Container container = this.getContentPane();
        container.setLayout(new GridLayout(2,2,10,10));//后面两个参数表式间距

        JPanel jPanel = new JPanel(new GridLayout(1, 3));
        JPanel jPane2 = new JPanel(new GridLayout(1, 2));
        JPanel jPane3 = new JPanel(new GridLayout(2, 1));
        JPanel jPane4 = new JPanel(new GridLayout(2, 2));
        jPanel.add(new JButton("1"));
        jPanel.add(new JButton("1"));
        jPanel.add(new JButton("1"));
        jPane2.add(new JButton("2"));
        jPane2.add(new JButton("2"));
        jPane3.add(new JButton("3"));
        jPane3.add(new JButton("3"));
        jPane4.add(new JButton("4"));
        jPane4.add(new JButton("4"));
        jPane4.add(new JButton("4"));
        jPane4.add(new JButton("4"));

        container.add(jPanel);
        container.add(jPane2);
        container.add(jPane3);
        container.add(jPane4);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        this.setBounds(100,100,500,500);
    }

    public static void main(String[] args) {
        new JPanelDemo();
    }
}

按钮

图片按钮:

import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class JButtonDemo01 extends JFrame {
    public JButtonDemo01(){
        Container container = this.getContentPane();
        //将一个图片变为一个图标
        URL url = JButtonDemo01.class.getResource("tx.png");
        Icon icon = new ImageIcon(url);

        //把这个图标放在按钮上
        JButton jButton = new JButton();
        jButton.setIcon(icon);
        jButton.setToolTipText("图片按钮");

        container.add(jButton);
        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new JButtonDemo01();
    }
}

单选框:

import javax.swing.*;
import java.awt.*;

public class JButtonDemo02 extends JFrame {
    public JButtonDemo02(){
        Container container = this.getContentPane();

        //单选框
        JRadioButton button01 = new JRadioButton("JRadioButton01");
        JRadioButton button02 = new JRadioButton("JRadioButton02");
        JRadioButton button03 = new JRadioButton("JRadioButton03");

        //由于单选框只能选一个,分组
        ButtonGroup group = new ButtonGroup();
        group.add(button01);
        group.add(button02);
        group.add(button03);

        container.add(button01,BorderLayout.CENTER);
        container.add(button02,BorderLayout.NORTH);
        container.add(button03,BorderLayout.SOUTH);

        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new JButtonDemo02();
    }
}

多选框:

import javax.swing.*;
import java.awt.*;

public class JButtonDemo03 extends JFrame {
    public JButtonDemo03(){
        Container container = this.getContentPane();

        //多选框
        JCheckBox checkBox01 = new JCheckBox("checkBox01");
        JCheckBox checkBox02 = new JCheckBox("checkBox02");
        JCheckBox checkBox03 = new JCheckBox("checkBox03");

        container.add(checkBox01,BorderLayout.NORTH);
        container.add(checkBox02,BorderLayout.CENTER);
        container.add(checkBox03,BorderLayout.SOUTH);

        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new JButtonDemo03();
    }
}

列表

下拉框:

import javax.swing.*;
import java.awt.*;

public class TestComboxDemo01 extends JFrame {
    public TestComboxDemo01(){

        Container container = this.getContentPane();
        JComboBox comboBox = new JComboBox();
        comboBox.addItem(null);
        comboBox.addItem("即将上映");
        comboBox.addItem("正在上映");
        comboBox.addItem("已下架");

        container.add(comboBox);

        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new TestComboxDemo01();
    }
}

列表框:

import javax.swing.*;
import java.awt.*;
import java.util.Vector;

public class TestComboxDemo02 extends JFrame {
    public TestComboxDemo02(){

        Container container = this.getContentPane();

        //生成列表的内容
        //String[] contents={"1","2","3"};
        Vector contents = new Vector();
        JList list = new JList(contents);
        contents.add("1");
        contents.add("2");
        contents.add("3");

        container.add(list);

        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new TestComboxDemo02();
    }
}

文本框

文本框:

import javax.swing.*;
import java.awt.*;

public class TestTextDemo01 extends JFrame {
    public TestTextDemo01(){

        Container container = this.getContentPane();

        //文本框
        JTextField textField1 = new JTextField("hello");
        JTextField textField2 = new JTextField("world",20);

        container.add(textField1,BorderLayout.NORTH);
        container.add(textField2,BorderLayout.SOUTH);


        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new TestTextDemo01();
    }
}

密码框:

import javax.swing.*;
import java.awt.*;

public class TestTextDemo02 extends JFrame {
    public TestTextDemo02(){

        Container container = this.getContentPane();

        //密码框
        JPasswordField passwordField = new JPasswordField();
        passwordField.setEchoChar('*');

        container.add(passwordField);

        this.setVisible(true);
        this.setBounds(100, 100, 500, 500);
        this.setDefaultCloseOperation(3);
    }

    public static void main(String[] args) {
        new TestTextDemo02();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swing之Jframe窗体、 JDialog弹窗、标签、面板、按钮(图片按钮,单选框,多选框)、列表(下拉框,列表框)、文本框、密码框 的相关文章

  • 如何从Firebase Firestore实时更新文档中获取修改后的字段或数据? [复制]

    这个问题在这里已经有答案了 我有多个文档 我的问题是我无法获取修改的特定数据 我正在获取完整的文档 db collection employees whereEqualTo OID OID addSnapshotListener new E
  • 如何使用Spring WebClient进行同步调用?

    Spring Framework in 休息模板 https docs spring io spring framework docs current javadoc api org springframework web client R
  • Guice 忽略注入构造函数参数上的 @Nullable

    我正在使用 Guice v 3 0 并且有一个值被注入到构造函数中 该值可以为 null 因此我在构造函数中使用 Nullable 来自 javax annotations 注释了该参数 public MyClass Parameter1
  • 如何将jscrollpane添加到jframe?

    我有以下源代码 有人可以给我建议如何将 jscrollpane 添加到 jframe 上吗 我尝试了几次将其添加到 jframe 但没有任何进展 它甚至没有显示 public class Form3 JFrame jframe new JF
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 如何在java Spring Boot中实现通用服务类?

    我有许多具有重复代码的服务 我想知道如何实现通用服务 以便我的所有服务都可以扩展它 服务接口示例 重复代码 Service public interface IUserService List
  • 为自定义驱动程序创建 GraphicsDevice

    我正在开发一个在嵌入式系统中使用 Java 的项目 我有用于屏幕和触摸输入的驱动程序 以及用于文本输入的虚拟键盘 我的屏幕驱动程序有一个Graphics2D您可以绘制的对象和repaint Rectangle 更新方法 类似地 触摸驱动器能
  • Spring数据中的本机查询连接

    我有课 Entity public class User Id Long id String name ManyToMany List
  • Java中的断点和逐步调试?

    抱歉我的问题名称很奇怪 我不知道如何寻找这个 因为我不知道这些东西是如何称呼的 Visual Studio 中至少有一个功能 您可以单击代码左侧并设置一个大红点的起点 然后运行程序 您可以通过按 f8 或 f5 实际上是不同的 f 来跟踪步
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • IntelliJ 组织导入

    IntelliJ 是否具有类似于 Eclipse 中的组织导入功能 我拥有的是一个 Java 文件 其中多个类缺少导入 例子 package com test public class Foo public Map map public J
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • 如何在Java中对对象数组进行字段级别排序以进行等级比较?

    In Java Class StudentProgress String Name String Grade CTOR goes here main class main method StudentProgress arrayofObje
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • 使用 JFreeChart 为两个系列设置不同的 y 轴

    我正在使用 JFreeChart 使用折线图绘制两个数据系列 XYSeries 复杂的因素是 其中一个数据系列的 y 值通常远高于第二个数据系列的 y 值 假设第一个系列的 y 值约为数百万数量级 而第二个数据系列的 y 值约为数百万数量级
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • 【满分】【华为OD机试真题2023 JS】统计匹配的二元组个数

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 统计匹配的二元组个数 知识点数组 时间限制 1s 空间限制 32MB 限定语言 不限 题目描述 给定两个数组A和B 若数组A的某个元素A i 与数组B中的某个元素B j 满足 A
  • 函数getopt(),及其参数optind

    getopt被用来解析命令行选项参数 转载地址 http hi baidu com xlt1888 blog item 703148383008492670cf6c2d html include
  • java属于什么语言_java是什么语言 ?是什么系统?

    一开始了解计算机这个专业 大家都会经常性听到Java这一词语 那么大家有真正的了解什么是Java吗 Java是属于什么语言呢 JAVA语言 其实是混合型的一种语言 Java语言是一个支持网络计算的面向对象程序设计语言 Java语言吸收了Sm
  • MinIO学习文档(Java版)

    目录 一 安装 1 在k8s中安装minio单机版 1 创建minio名称空间 2 minio单机版安装yaml 二 代码 1 pom xml 说明 minio所用依赖 2 application yml 说明 放置minio连接信息 mi
  • Python爬虫入门——梦开始的地方

    目录 文章目录 前言 一 前置知识 二 实现步骤 1 分析网站 2 制定爬取方案 3 实现方案 4 基础代码展示 5 代码详解 6 代码封装 总结 前言 爬虫应严格遵守国家法律规定 时隔数月 进入暑假 回忆这数月的学习内容 不禁感慨计算机的
  • jpa insert 对象_SpringBoot2.x入门:使用JPA

    前提 这篇文章是 SpringBoot2 x入门 专辑的 第9篇 文章 使用的SpringBoot版本为2 3 1 RELEASE JDK版本为1 8 这篇文章会介绍一下SpringBoot如何引入和使用JPA JPA 即Java Pers
  • 表示不变量

    不变量 产生好的ADT设计 其中最重要的一点就是它会保护 保留自己的不变量 不变量是一种属性 它在程序运行的时候总是一种状态 而不变性就是其中的一种 一旦一个不变类型的对象被创建 它总是代表一个不变的值 当一个ADT能够确保它内部的不变量恒
  • Java内存模型

    Java内存模型 处理器需要与内存交互 如读取运算数据 存储运算结果等 这个I O操作是很难消除的 无法仅靠寄存器来完成所有运算任务 由于计算机的存储设备与处理器的运算速度有几个数量级的差距 所以现代计算机系统都不得不加入一层读写速度尽可能
  • GitHub上传新手

    第一次上传 1 注册GitHub 2 新建仓库 网上有新建教程 很简单的 3 下载安装Git 一般一直下一步即可 没有特殊要求的话 网址 https gitforwindows org 4 在Git Bush中进入放项目文件的地址 如果是直
  • CentOS7上安装anaconda3及其遇到的问题

    https mirrors tuna tsinghua edu cn anaconda archive 国内镜像 下载速度快 不要选择最新版 有问题 建议 4 3 0 运行命令 conda V 返回版本号即安装成功 1 通过命令行工具 wg
  • 必须了解的mysql三大日志-binlog、redo log和undo log

    目录 一 前言 二 binlog 备份日志 1 作用 2 使用场景 3 日志形式 4 binlog刷盘时机 三 redo log 重做日志 1 概念 2 为什么需要redo log 3 日志形式 4 redo log与binlog区别 四
  • 锂电池基础知识简介

    锂离子电池已经渗透到现代生活的方方面面 它可以为生活中很多东西 如手机 手表 平板电脑 便携式设备等 提供电源 现简单概要介绍锂电池的基础知识 1 基础术语 1 C rate 倍率 指电池充放电时电流与电池标称容量的比率 即描述了电池可以在
  • FPGA Lattice Diamond 开发环境搭建

    FPGA Lattice Diamond 开发环境搭建 Lattice Diamond 软件下载 在浏览器中输入 Lattice 的官网地址 http www latticesemi com 进入官网首页在上方选择产品系列选项 出现如下图所
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • 【源码篇】基于ssm+bootstrap+jquery的学生成绩管理系统

    系统介绍 基于ssm bootstrap jquery的学生成绩管理系统一共分为六大模块 分别是用户管理 课程管理 班级管理 学籍管理 学费管理 成绩管理 用户管理 1 用户信息预览 查询并根据姓名搜索系统用户 2 新增用户信息 添加系统用
  • Redis7之事务(五)

    五 Redis 事务 5 1 介绍 可以一次执行多个命令 本质是一组命令的集合 一个事务中的所有命令都会序列化 按顺序地串行化执行而不会被其他命令插入 不许加塞 一个队列中 一次性 顺序性 排他性的执行一系列命令 5 2 Redis事务和数
  • 包管理工具那么多,怎么选?npm、yarn 和 pnpm 三者比较及使用详解!

    1 简介 在 Vue 项目中 我们需要使用许多第三方依赖库 如 Vue Router Vuex Axios Element UI 等等 这些依赖库通常以 NPM 包的形式提供 而且在使用时需要进行版本管理 因此 我们需要使用一个包管理工具来
  • TCP/IP详解 第十二章(2) linux 网络编程

    转载请声明博主https mp csdn net console editor html 106517098 一 Linux网络概述 LINUX网络优势 1 完善的内置网络 和内核结合在一起的网络部分 I p queue 2 Linux 免
  • python将超大CSV文件切割为多个Excel文件存储

    很多时候处理数据会碰到CSV文件 如果是一般的少量文件问题不大 一旦碰到大型的CSV文件 就会出现打不开文件的结果 因为文本无法打开超大型文件 Excel也最多能够容量一百万条数据量 因此只能将CSV文件切割成为多个小的CSV文件 将csv
  • Swing之Jframe窗体、 JDialog弹窗、标签、面板、按钮(图片按钮,单选框,多选框)、列表(下拉框,列表框)、文本框、密码框

    Swing Jframe窗体 import javax swing import java awt public class JFrameDemo init 初始化 public void init JFrame frame new JFr