GUI编程-01

组件

  • 窗口

  • 弹窗

  • 面板

  • 文本框

  • 列表框

  • 按钮

  • 图片

  • 监听事件

  • 鼠标

  • 键盘事件

  • 破解工具

Java提供了丰富的图形用户界面(Graphics User Interface,GUI)的类库,基于这些类库可以编写窗口程序。

Java关于图形界面的类库主要放在Swing和AWT包下。

AWT

AWT组件也被称为重组件,因为针对不同的运行平台,AWT组件会调用特定平台组件。

AWT是一个抽象窗口类。

1.包含了很多类和接口

2.元素:窗口,按钮,文本框

3.java.awt包

组件和容器

package YMP.GUI;
​
import java.awt.*;
​
public class TestFrame {
    public static void main(String[] args) {
        Frame frame=new Frame("第一个Java图形界面窗口");
​
        //设置可见性
        frame.setVisible(true);
        //设置窗口大小
        frame.setSize(400,400);
        //设置背景颜色
        frame.setBackground(Color.BLACK);
        //弹出的初始位置
        frame.setLocation(200,200);
        //设置大小固定,不可拉伸
        frame.setResizable(false);
    }
}
​

多个窗口

package YMP.GUI;
​
import java.awt.*;
​
class MyFrame extends Frame {
​
​
    public MyFrame(int x,int y,int w,int h,Color color){
        setVisible(true);
        setBounds(x,y,w,h);
        setBackground(color);
    }
}

package YMP.GUI;
​
import java.awt.*;
​
public class TestFrame2 {
   
    public static void main(String[] args) {
        MyFrame myFrame1=new MyFrame(100,100,200,200,Color.blue);
        MyFrame myFrame2=new MyFrame(300,100,200,200,Color.yellow);
        MyFrame myFrame3=new MyFrame(100,300,200,200,Color.red);
        MyFrame myFrame4=new MyFrame(300,300,200,200,Color.MAGENTA);
    }
}
​

面板Panel

可以看成是一个空间,但不能单独存在

package YMP.GUI;
​
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
​
public class TestPanel {
    public static void main(String[] args) {
        Frame frame=new Frame();
        Panel panel=new Panel();
​
        //布局概念
        frame.setLayout(null);
        //坐标
        frame.setBounds(300,300,500,500);
        //背景颜色
        frame.setBackground(new Color(40,161,35));
        //设置Panel相对与frame的坐标
        panel.setBounds(50,50,400,400);
        panel.setBackground(new Color(193,15,60));
​
        frame.add(panel);
        frame.setVisible(true);
​
        //监听事件,监听窗口关闭事件
        frame.addWindowListener(new WindowListener() {
​
​
            @Override
            public void windowOpened(WindowEvent e) {
​
            }
​
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
​
            @Override
            public void windowClosed(WindowEvent e) {
​
            }
​
            @Override
            public void windowIconified(WindowEvent e) {
​
            }
​
            @Override
            public void windowDeiconified(WindowEvent e) {
​
            }
​
            @Override
            public void windowActivated(WindowEvent e) {
​
            }
​
            @Override
            public void windowDeactivated(WindowEvent e) {
​
            }
​
​
        });
    }
}
​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/692269.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp自定义的下面导航

uniapp自定义的下面导航 看看效果图片吧 文章目录 uniapp自定义的下面导航 看看效果图片吧 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6aa0e964741d4dd3a58f4e86c4bf3247.png) 前言一、写组件、我这里就没有写组件了直接写了一个页面?总结 前言 在…

JWT 快速入门

什么是 JWT JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案 JSON Web Token Introduction - jwt.ioLearn about JSON Web Tokens, what are they, how they work, when and why you should use them.https://jwt.io/introduction 一、常见会…

Vue13-计算属性的简写

一、计算属性的简写 注意: 当计算属性只有get,没有set的时候,才能用简写形式!!!

端午与高考的交汇点:家的温暖与梦想的起点

当端午节的粽香弥漫在街头巷尾,高考的脚步也悄然而至。这两个看似毫无关联的时刻,却在每年的六月,奇妙地交汇在一起,为我们带来了一段特别的记忆。这不仅是家的温暖与梦想的起点相遇的时刻,更是传统文化与现代追求共融…

Rust-06-所有权

所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收即可保障内存安全,下面是所有权以及相关功能:借用(borrowing)、slice 以及 Rust 如何在内存中布局数据。 通过所有权系统管理内…

Java版工程项目管理平台:以源码驱动,引领工程企业数字化转型

在当今数字化时代,随着企业的扩张和业务的增长,传统的工程项目管理方法已显不足。为了提升管理效率、减轻工作负担、增强信息处理的快速性和精确度,工程企业亟需借助数字化技术进行转型升级。本文将向您展示一款基于Spring Cloud、Spring Boo…

当前主流的App开发技术综述

一、引言 随着移动互联网的蓬勃发展,App(应用程序)已经成为人们日常生活中不可或缺的一部分。无论是社交、购物、娱乐还是工作学习,App都以其便捷、高效和个性化的特点深受用户喜爱。而在这一过程中,App开发技术也在不…

MFC 教程-文本框失去焦点处理

【1】增加窗口的消息处理函数 void CTESTMFCDlg::OnKillFocus(CWnd* pNewWnd) {//CDialogEx::OnKillFocus(pNewWnd);//首先使用true将数据从控件传入成员变量中UpdateData(true);//校验成员变量m_data中的数据是否符合要求,如果不符合,修改后将它显示在控…

访问网站时IP被阻止?原因及解决方法

在互联网上,用户可能会面临一个令人困扰的问题——当尝试访问某个特定的网站时,却发现自己的IP地址被该网站屏蔽。 IP地址被网站屏蔽是一个相对常见的现象,而导致这种情况的原因多种多样,包括恶意行为、违规访问等。本文将解释IP地…

转让北京公司带旅行许可证流程和要求

旅行社是开展旅游服务业务的专项经济主体,旅行社开展相关业务必须持有旅行社业务经营许可证。该资质又分为国内旅行社经营许可证和出境旅行社经营许可证。主要区别在于能否开展出境旅游业务,下面老耿带大家了解,新成立国内旅行社要求及出境旅…

Git之解决重复输入用户名和密码(三十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【CS.CN】深入探讨下HTTP的Connection头:通过keep-alive实现高效网络连接

文章目录 0 序言0.1 由来0.2 使用场景0.3 现在还需要吗? 1 Connection: keep-alive的机制2 语法 && 通过设置Connection: keep-alive优化性能3 验证与性能提升4 总结References 0 序言 0.1 由来 Connection头部字段在HTTP/1.1中被引入,主要用于…

React的useState的基础使用

import {useState} from react // 1.调用useState添加状态变量 // count 是新增的状态变量 // setCount 修改状态变量的方法 // 2.添加点击事件回调 // userState实现计数实例import {useState} from react// 使用组件 function App() {// 1.调用useState添加状态变量// coun…

ChatTTS增强版V2,批量导出srt,语速控制,情感控制,支持朗读数字,问题修复

ChatTTS增强版最新版本已经发布,本次更新我主要增加了多文本批量、SRT导出、语速控制、情感控制、停顿控制等新功能,并针对上一版本中存在的数字读音异常、随机uv_break等问题进行了修复。 视频版本 【ChatTTS增强版V2,批量导出srt&#xff…

基于C#的计算机与安捷伦34970A通信方法

概述 安捷伦34970A采集数据,34970A支持RS232接口,但是如果直接用winform自带的seriaport类基本是没必要使用的,安捷伦等仪表通讯需要用到VISA的库。 库的获取 1. 是德科技的IO Library. 2. NI下载NI-VISA. 两者用法接近. 代码如下 using…

数据库安全加固与API防护策略

在数字化时代,数据库作为企业核心资产的安全性至关重要。然而,随着网络攻击手段的不断演进,数据库和API接口成为了黑客的主要攻击目标。本文将探讨数据库被攻击、API接口被滥用的情况,并提供一系列实用的防护措施,旨在…

JSP中连接数据库MySQL

JSP中连接数据库MySQL 一、软件环境 下载并安装MySQL,Tomacat,JDBC、IDEA或其他IDE,本文使用IDEA 二、环境配置 将其环境变量配置好之后,下载Java 专用的连接MySQL的驱动包JDBC。 下载链接:https://dev.mysql.com/…

机器学习----奥卡姆剃刀定律

奥卡姆剃刀定律(Occam’s Razor)是一条哲学原则,通常表述为“如无必要,勿增实体”(Entities should not be multiplied beyond necessity)或“在其他条件相同的情况下,最简单的解释往往是最好的…

一篇学会Arthas的基本使用及常用指令

下载安装 下载arthas的jar包 https://alibaba.github.io/arthas/arthas-boot.jar将jar包下载后放到指定的文件夹中 启动与结束 winr打开命令行使用命令运行arthas对应的jar包 java -jar D:\application\arthas\arthas-boot.jar会列出所有的java服务选择要监控的服务&#xff0c…

mqtt-emqx:paho.mqttv5的简单例子

# 安装emqx 请参考【https://blog.csdn.net/chenhz2284/article/details/139551293?spm1001.2014.3001.5502】 # 下面是示例代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</…