首页 > 编程语言 >JAVA语言学习-Day8

JAVA语言学习-Day8

时间:2024-04-11 16:56:24浏览次数:49  
标签:JAVA 语言 Day8 t2 t3 t1 add new TextField

参考教学视频:秦疆

GUI

组件:窗口、弹框、面板、文本框、列表框、按钮、图片、监听事件、鼠标、键盘事件、破解工具

1. 简介

Gui的核心:Swing AWT

  1. 界面不美观

  2. 需要jre环境

2.AWT

awt介绍:

  1. 包含了很多的接口和类

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

  3. java.awt.*

  • 组件Component

    • button、TextArea、Label... 存放在容器中

    • 容器Container

      • Window

        • Frame

        • Dialog

      • 面板Panel

        • Applet

组件和容器

  • Frame

        Frame f = new Frame("JAVA图形界面窗口");
f.setVisible(true);//设置可见
f.setBackground(Color.yellow);//背景色
// f.setSize(400, 400);//设置大小
// f.setLocation(200,200);//初始位置
f.setResizable(false);//设置大小固定
f.setBounds(200,200,400,400);//等价设置大小及初始位置
  • Panel

        Frame f = new Frame();
f.setLayout(null);
f.setBounds(200, 200, 400, 400);
f.setBackground(Color.gray);

Panel p = new Panel();
p.setBounds(50,50,100,100);//panel设置坐标,相对于frame
p.setBackground(new Color(193,15,60));

f.add(p);
f.setVisible(true);

//监听事件
//监听窗口关闭事件,适配器模式
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
//窗口关闭时退出程序
System.exit(1);
// super.windowClosing(e);
}
});
  • 布局管理器

  1. 流式布局

  2. 东南西北中布局

  3. 表格布局

事件监听

addActionListener();

public void actionPerformed(ActionEvent e){
//e.getActionCommand();获取按钮信息
}

组合+内部类

  • 内部类

class Calculator extends Frame{
TextField t1,t2,t3;
public Calculator() {
// TextField t1 = new TextField(10);
// TextField t2 = new TextField(10);
// TextField t3 = new TextField(10);
t1 = new TextField(10);
t2 = new TextField(10);
t3 = new TextField(10);

Button b = new Button("=");
// b.addActionListener(new MyCalculatorListener(t1,t2,t3));
b.addActionListener(new MyCalculatorListener());
Label l = new Label("+");

setLayout(new FlowLayout());

add(t1);
add(l);
add(t2);
add(b);
add(t3);

pack();
setVisible(true);
}

private class MyCalculatorListener implements ActionListener{
// private TextField t1;
// private TextField t2;
// private TextField t3;
// Calculator c = null;
// public MyCalculatorListener(TextField t1,TextField t2,TextField t3) {
// public MyCalculatorListener(Calculator c) {
//// this.t1 = t1;
//// this.t2 = t2;
//// this.t3 = t3;
// this.c = c;
// }
@Override
public void actionPerformed(ActionEvent e) {
// int i1 = Integer.parseInt(t1.getText());
// int i2 = Integer.parseInt(t2.getText());
// t3.setText(i1+i2+"");
// t1.setText("");
// t2.setText("");
int i1 = Integer.parseInt(t1.getText());
int i2 = Integer.parseInt(t2.getText());
t3.setText(i1+i2+"");
t1.setText("");
t2.setText("");
}
}
}

鼠标监听

mouseListener

窗口监听

windowListener

键盘监听

keyListener

3.Swing

窗口、面板

    JFrame jf = new JFrame("JFrame窗口");
jf.setVisible(true);
jf.setBounds(100,100,400,600);

Container c = jf.getContentPane();
c.setBackground(Color.gray);

JLabel jl = new JLabel("JLabel窗口");
jl.setHorizontalAlignment(SwingConstants.CENTER);
jf.add(jl);

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

弹窗

public TestDialog() {
class NewDialog extends JDialog{
public NewDialog() {
this.setVisible(true);
this.setBounds(100,100,500,500);

Container c = this.getContentPane();
c.setLayout(null);

c.add(new Label("测试"));
}
}

this.setVisible(true);
this.setSize(700,500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

Container c = this.getContentPane();
c.setLayout(null);

JButton jb = new JButton("点击弹窗");
jb.setBounds(30,30,200,50);

jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new NewDialog();
}
});
c.add(jb);
}

标签、面板、按钮、列表、文本框

  • 图标icon、imageIcon

  • 滚动条 JScrollPanel

    Container c = getContentPane();

JTextArea jta = new JTextArea(20,50);
jta.setText("测试");

JScrollPane js = new JScrollPane(jta);
c.add(js);

this.setVisible(true);
this.setBounds(100,100,300,350);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

如果时间片足够小,就是动画,一秒30帧 60帧。连起来就是动画,拆开就是静态的图片

标签:JAVA,语言,Day8,t2,t3,t1,add,new,TextField
From: https://www.cnblogs.com/-Gin/p/18129564

相关文章

  • 鸿蒙开发TypeScript语言:【TypeScript 安装】
    TypeScript安装本文介绍TypeScript环境的安装。我们需要使用到npm工具安装。NPM安装TypeScript如果你的本地环境已经安装了npm工具,可以使用以下命令来安装。使用国内镜像:npmconfigsetregistryhttps://registry.npmmirror.com安装typescript:npminstall-g......
  • java 复制文件
    java复制文件importjava.io.IOException;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.nio.file.Files; PathsourcePath=Paths.get("/storage/emulated/0/Android/media/images/19/25.jpg");PathdestinationPath=Paths.get(&q......
  • java时间格式化
    使用DateFormat写项目时,pojo写了@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="Asia/Shanghai")privateDatecreateTime;,数据库用的是datetime格式直接用mybatis从数据库拿出来时间输出得到:WedApr1000:00:00CST2024解决方案在写impl时,不直接把从数......
  • Java从外部配置文件读取参数
    1.pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mav......
  • c语言通过cgi做网站
    效果图:       主代码如下:#include<stdlib.h>#include<stdio.h>#include"hiredis/hiredis.h"#include"mysql/mysql.h"#pragmacomment(lib,"libmysql")#include<libmemcached/memcached.h>#include<......
  • C语言程序设计(第四版)第五章主要内容
    本章主要讲述<选择控制结构>一、关系运算符与表达式1.既不能在<=、>=、==、!=的符号中间插入空格,也不能将!=、<=、>=的两个符号写反,更不能以相应的数学运算符相混淆。2.不要将==误写为=。3.用非0值表示"真",用0值表示"假"。二、用于单分支控制的条件语句if(表达式p) 语......
  • java+saas模式医院云HIS系统源码Java+Spring+MySQL + MyCat融合BS版电子病历系统,支持
    java+saas模式医院云HIS系统源码Java+Spring+MySQL+MyCat融合BS版电子病历系统,支持电子病历四级云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医......
  • C语言 位域
    C语言的位域(bit-field)是一种特殊的结构体成员,允许我们按位对成员进行定义,指定其占用的位数。如果程序的结构中包含多个开关的变量,即变量值为TRUE/FALSE,如下:struct{unsignedintwidthValidated;unsignedintheightValidated;}status;这种结构需要8字节的......
  • 淘宝详情API接口文档(java)get调用
    淘宝详情API接口是用于获取淘宝商品详细信息的接口,它允许开发者通过发送请求,获取商品的描述、价格、评价等信息。下面是一个关于淘宝详情API接口的示例文档,包括接口地址、请求参数、响应参数等内容。淘宝详情API接口文档一、接口地址https://api-gw.onebound.cn/taobao/item_ge......
  • Battleship程序设计语言与技术
    程序设计语言与技术课业10:战舰截止日期以画布为准)对于HW10,你可以作为一个小组(不超过2名学生)工作。请提及您的每个代码文件顶部的合作者姓名。这个家庭课业比以前的课业更详细,所以请尽早开始它涉及以下主题:●继承和覆盖●访问修饰符●抽象课程(我们将在下一堂课中了解这些内容)●......