JavaGUI——Java图形用户界面

JAVA GUI(图形用户界面) 阅读详情

1、Java GUI 概述

GUI(Graphical User Interface,简称 GUI,图形用户界面)是指采用图形方式显示的计算机操作用户界面,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

Java GUI主要有两个核心库,分别是AWT(java.awt:Abstract Windows ToolKit(抽象窗口工具包))和Swing(javax.swing:AWT的扩展),AWT需要调用本地系统方法来实现功能,属重量级控件,而Swing是在AWT的基础上,建立的一套图像界面系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属轻量级组件。

2、容器

容器(Container)是组件(Component)的子类,一个容器可以容纳多个组件,并使他们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面,所有的组件都可以通过add()方法加入容器中。容器共有四种类型,分别是窗口(JFrame)、弹窗(JDialog)、面板(JPanel)、滚动面板(JScrollPanel)。

2、1 窗口

Frame或JFrame类用于创建一个具有标题栏的框架窗口作为程序的主要界面,它不依赖其他容器可以单独存在。

public class JFrameUse {
    public static void main(String[] args) {
        // 初始化窗口
        JFrame jFrame = new JFrame("这个是窗口的标题");
        // 设置窗口的位置和大小
        jFrame.setBounds(400, 300, 500, 500);
        // 设置窗口的背景颜色
        jFrame.setBackground(new Color(175, 114, 114));
        // 设置窗口是否可见
        jFrame.setVisible(true);
        // 设置窗口是否可以缩放
        jFrame.setResizable(false);
        /**
         * 设置窗口的相对位置。
         * 如果 comp 整个显示区域在屏幕内, 则将窗口放置到 comp 的中心;
         * 如果 comp 显示区域有部分不在屏幕内, 则将该窗口放置在最接近 comp 中心的一侧;
         * comp 为 null, 表示将窗口放置到屏幕中心。
         */
        jFrame.setLocationRelativeTo(null);
        /**
         * 设置窗口关闭按钮点击后的默认操作, 参考值:
         *     WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。
         *     WindowConstants.HIDE_ON_CLOSE: 隐藏窗口(不会结束进程), 再次调用 setVisible(true) 将再次显示。
         *     WindowConstants.DISPOSE_ON_CLOSE: 销毁窗口, 如果所有可显示的窗口都被 DISPOSE, 则可能会自动结束进程。
         *     WindowConstants.EXIT_ON_CLOSE: 退出进程。
         */
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

2、2 弹窗和对话框

JDialog,对话框,使用 JDialog 类可以创建自定义有的对话框,或者调用 JOptionPane 中的多个静态方法快速创建各种标准的对话框。

JOptionPane是JavaSwing内部已实现好的,以静态方法的形式提供调用,能够快速方便的弹出要求用户提供值或向其发出通知的标准对话框。主要具有以下几种那类型:

  • showMessageDialog:消息对话框,向用户展示一个消息,没有返回值。
  • showConfirmDialog:确认对话框,询问一个问题是否执行。
  • showInputDialog:输入对话框,要求用户提供某些输入。
  • showOptionDialog:选项对话框,上述三项的大统一,自定义按钮文本,询问用户需要点击哪个按钮。

上述四个类型的方法(包括其若干重载)的参数遵循一致的模式,下面介绍各参数的含义:

  • parentComponent: 对话框的父级组件,决定对话框显示的位置,对话框的显示会尽量紧靠组件的中心,如果传 null,则显示在屏幕的中心。
  • title: 对话框标题。
  • message: 消息内容。
  • optionType: 选项按钮的类型。
  • selectionValues、initialSelectionValue: 提供的输入选项,以及默认选中的选项。
  • icon: 自定义的对话框图标,如果传 null,则图标类型由 messageType 决定。
  • messageType: 消息类型,主要是提供默认的对话框图标。可能的值为:
    • JOptionPane.PLAIN_MESSAGE 简单消息(不使用图标)
    • JOptionPane.INFORMATION_MESSAGE 信息消息(默认)
    • JOptionPane.QUESTION_MESSAGE 问题消息
    • JOptionPane.WARNING_MESSAGE 警告消息
    • JOptionPane.ERROR_MESSAGE 错误消息

对话框

class JOptionPaneUse {
    public JOptionPaneUse() {
        final JFrame jf = new JFrame("测试窗口");
        jf.setSize(400, 400);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        /*
         * 1. 消息对话框(信息消息)
         */
        JButton btn01 = new JButton("showMessageDialog(信息消息)");
        btn01.addActionListener(e -> {
            // 消息对话框无返回, 仅做通知作用
            JOptionPane.showMessageDialog(jf, "通知信息", "消息标题", JOptionPane.INFORMATION_MESSAGE
            );
        });

        /*
         * 2. 消息对话框(警告消息)
         */
        JButton btn02 = new JButton("showMessageDialog(警告消息)");
        btn02.addActionListener(e -> {
            // 消息对话框无返回, 仅做通知作用
            JOptionPane.showMessageDialog(jf, "警告信息", "消息标题", JOptionPane.WARNING_MESSAGE);
        });

        /*
         * 3. 确认对话框
         */
        JButton btn03 = new JButton("showConfirmDialog");
        btn03.addActionListener(e -> {
            /*
             * 返回用户点击的选项, 值为下面三者之一:
             *     是:   JOptionPane.YES_OPTION
             *     否:   JOptionPane.NO_OPTION
             *     取消: JOptionPane.CANCEL_OPTION
             *     关闭: JOptionPane.CLOSED_OPTION
             */
            int result = JOptionPane.showConfirmDialog(jf, "确认删除?", "提示", JOptionPane.YES_NO_CANCEL_OPTION);
            System.out.println("选择结果: " + result);
        });

        /*
         * 4. 输入对话框(文本框输入)
         */
        JButton btn04 = new JButton("showInputDialog(文本框输入)");
        btn04.addActionListener(e -> {
            // 显示输入对话框, 返回输入的内容
            String inputContent = JOptionPane.showInputDialog(jf, "输入你的名字:", "默认内容");
            System.out.println("输入的内容: " + inputContent);
        });

        /*
         * 5. 输入对话框(下拉框选择)
         */
        JButton btn05 = new JButton("showInputDialog(下拉框选择)");
        btn05.addActionListener(e -> {
            Object[] selectionValues = new Object[]{"香蕉", "雪梨", "苹果"};
            // 显示输入对话框, 返回选择的内容, 点击取消或关闭, 则返回null
            Object inputContent = JOptionPane.showInputDialog(jf, "选择一项: ", "标题",
                    JOptionPane.PLAIN_MESSAGE, null, selectionValues, selectionValues[0]);
            System.out.println("输入的内容: " + inputContent);
        });

        /*
         * 6. 选项对话框
         */
        JButton btn06 = new JButton("showOptionDialog");
        btn06.addActionListener(e -> {
            // 选项按钮
            Object[] options = new Object[]{"香蕉", "雪梨", "苹果"};
            // 显示选项对话框, 返回选择的选项索引, 点击关闭按钮返回-1
            int optionSelected = JOptionPane.showOptionDialog(jf, "请点击一个按钮选择一项", "对话框标题",
                    JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.ERROR_MESSAGE, null,
                    options,    // 如果传null, 则按钮为 optionType 类型所表示的按钮(也就是确认对话框)
                    options[0]
            );
            if (optionSelected >= 0) {
                System.out.println("点击的按钮: " + options[optionSelected]);
            }
        });

        // 垂直排列按钮
        Box vBox = Box.createVerticalBox();
        vBox.add(btn01);
        vBox.add(btn02);
        vBox.add(btn03);
        vBox.add(btn04);
        vBox.add(btn05);
        vBox.add(btn06);

        JPanel panel = new JPanel();
        panel.add(vBox);

        jf.setContentPane(panel);
        jf.setVisible(true);
    }
}

自定义弹窗

class JDialogUse {
    public JDialogUse() {
        final JFrame jf = new JFrame("测试窗口");
        jf.setSize(300, 300);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JButton btn = new JButton("显示自定义对话框");
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                showCustomDialog(jf, jf);
            }
        });

        JPanel panel = new JPanel();
        panel.add(btn);

        jf.setContentPane(panel);
        jf.setVisible(true);
    }

    /**
     * 显示一个自定义的对话框
     *
     * @param owner           对话框的拥有者
     * @param parentComponent 对话框的父级组件
     */
    private static void showCustomDialog(Frame owner, Component parentComponent) {
        // 创建一个模态对话框
        final JDialog dialog = new JDialog(owner, "提示", true);
        // 设置对话框的宽高
        dialog.setSize(250, 150);
        // 设置对话框大小不可改变
        dialog.setResizable(false);
        // 设置对话框相对显示的位置
        dialog.setLocationRelativeTo(parentComponent);

        // 创建一个标签显示消息内容
        JLabel messageLabel = new JLabel("对话框消息内容");

        // 创建一个按钮用于关闭对话框
        JButton okBtn = new JButton("确定");
        okBtn.addActionListener(e -> {
            // 关闭对话框
            dialog.dispose();
        });

        // 创建对话框的内容面板, 在面板内可以根据自己的需要添加任何组件并做任意是布局
        JPanel panel = new JPanel(
java基础概念26:图形用户界面GUI GUI基本组件的介绍、监听事件 阅读详情

相关推荐

java 图形化界面

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

wxh的博客 2万+

JAVA中的GUI

传统的命令行界面(CLI)需要用户记忆和输入命令,而GUI则通过图形元素如窗口、按钮、菜单、对话框等来呈现信息和提供操作选项,使用户可以通过直接点击、拖拽、输入等方式与计算机进行交互。JPanel可以看作是一个空白的面板,你可以将其他组件添加到其中,并对其进行布局、设置风格和添加事件监听等操作。在构造函数中,设置了窗口的标题、大小、默认的关闭操作,并将窗口设置为可见。多任务支持:GUI允许多个应用程序同时运行在屏幕上的不同窗口中,并提供了任务切换和管理的功能,方便用户在不同应用程序之间进行切换和操作。

weixin_69778508的博客 1万+

告别命令行恐惧!用TBtools的MCScanX插件,5分钟搞定拟南芥和水稻的基因组共线性分析

本文介绍如何利用TBtools的MCScanX插件快速完成拟南芥和水稻的基因组共线性分析,无需命令行操作,5分钟即可生成专业可视化结果。通过图形化界面简化传统MCScanX的复杂流程,特别适合非生物信息背景的研究者,显著提升基因组数据分析效率。

dianzhuique8587的博客 363

JavaGUI简单介绍

GUI界面设计

生夏夏的博客 1万+

JAVAGUI图书管理系统:高效管理图书资源的强大工具

JAVAGUI图书管理系统:高效管理图书资源的强大工具 去发现同类优质开源项目:https://gitcode.com/ 在数字化浪潮席卷而来的今天,图书馆和图书管理系统的现代化、信息化变得尤为重要。JAVAGUI图书管理系统正是针对这一需求,提供的一款高效、稳定的图书管理解决方案。 项目介绍 JAVAGUI图书管理系统是一款基于Java语言和GUI图形用户界面的图书管理软件。系统利用Java的I...

gitblog_06749的博客 283

怎么学习Java图形用户界面GUI)? - 易智编译EaseEditing

学习Java图形用户界面GUI)可以按照以下步骤进行: 基本Java知识: 首先,确保你已经掌握了Java的基本语法和面向对象编程的概念,这是学习GUI的基础。

EEditing的博客 202

Java--GUI图形用户界面编程(计算器,贪吃蛇)

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。(百度百科)AWTSwing界面不美观需要jre环境才能使用AWT(Abstract Window Toolkit)抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java图形用户界面的基本工具。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。

likehack的博客 3228

java GUI知识回顾

Java GUI是指Java Graphical User Interface,即Java图形用户界面。它是基于Java语言开发的一种图形界面编程工具包,可以用于创建各种桌面应用程序。Java GUI提供了丰富的组件和布局管理器,开发者可以通过简单的组合和排列来实现各种复杂的用户界面,同时Java GUI还提供了一套事件模型和事件处理机制,用于处理用户事件并执行相应的操作。总之,Java GUI是一个非常强大的GUI工具包,可以用于创建各种桌面应用程序。

qq_62231627的博客 634

JavaGUI期末作业-管家婆记账管理软件

JavaGUI期末作业-管家婆记账管理软件 去发现同类优质开源项目:https://gitcode.com/ 简介 本软件是JavaGUI课程期末作业的成果,名为“管家婆记账管理软件”。这是一款面向个人用户、家庭用户及小型组织的记账管理工具,以Java图形用户界面技术为基础,提供方便、直观的操作体验。 功能特点 账目管理:软件能够记录用户的各项收入与支出,如工资、房租、日常开销等,并支持分类和标...

gitblog_06757的博客 461

实训第九天的心得体会:探索JAVA图形界面与事件处理的世界

我们不仅了解了JFrame类的构造方法和常用操作方法,例如设置窗口标题、大小、位置,以及窗口关闭时的行为控制等,还实践了如何使用Dimension类和Point类精确地设定组件的尺寸和显示位置。此外,还接触到了复选框(JRadioButton)、单选按钮组(ButtonGroup配合JRadioButton使用)、复选框(JCheckBox)等用于数据选择的组件,以及菜单组件(JMenu和JMenuItem)和表格组件(JTable)等复杂UI元素,理解了它们在复杂应用界面设计中的重要性及其用法。

weixin_74620383的博客 862

Java——GUI图形用户界面

AWT是用于创建图形用户界面的一个工具包,它提供了一系列用于实现图形界面的组件,如窗口、按钮、文本框、对话框等。在JDK中针对每个组件都提供了对应的Java类,这些类都位于iava.awt包中,接下来通过一个图例来描述这些类的继承关系,如图所示从图的继承关系可以看出,在AWT中组件分为两大类,这两类的基类分别是Component和MenuComponent。

weixin_51526796的博客 8055

GUI (java)

Swing是纯Java组件,使得应用程序在不同的平台上运行时具有相同外观和相同的行为。Swing中的大部分组件类位于javax.swing包中.Swing中的组件非常丰富,支持很多功能强大的组件关于GUI组件的类都在Swing包里。

qq_64782704的博客 6451

Java GUI编程

GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好。

qq_55674489的博客 4298

Java图形界面编程

参数x1, y1, x2, y2决定了渐变的强弱,即要求从点(x1, y1)出发到达点(x2, y2),颜色从c1变成c2。然后,用上述图形类提供的静态方法Double()创建该图形的对象;将容器分割成多行多列,组件被填充到每个网格中,添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他组件,当占满该行的所有网格后,接着继续在下一行从左到右放置组件。通过循环产生自变量的值,按照方程计算出函数值,再作必要的坐标转换:原点定位的平移变换,图像缩小或放大的缩放变换,得到曲线的图像点,并绘制这个点。

顺其自然~专栏 1万+

Java GUI——Java图形用户界面

Java GUI——Java图形用户界面 1、Java GUI概述 1.1、GUI的前世今生 早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。如:Windows中的DOS窗口。后来,Apple公司率先在电脑的操作系统中实现了图形化的用户界面(Graphical User Interface,简称GUI),但由于Apple公司封闭的市场策略,与其它PC不兼容。这使得Apple公司错过了一次一统全球PC的好机会。后来,Microsoft公司推出了风靡全球的Windows操...

小仙儿 16万+

【PyGIS】ERA5降雨蒸散发数据预处理

ERA5-LAND降雨蒸散发数据预处理

```On Earth, Be Water, By Coding``` 3111

晋级版七夕情人节 飞行棋限定版本源码php.zip

晋级版七夕情人节 飞行棋限定版本源码php.zip

上一篇: docker技术学习流程
下一篇: Java -Version的秘密
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值