java11 - GUI图形用户界面编程
一、JavaSwing界面设计参考教程
二、布局管理器
三、绝对布局
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class GuiDemo {
private JFrame f; // 窗体
private JTextField tf; // 文本框
private JButton btn1; // 按钮 1
private JButton btn2; // 按钮 2
private JButton btnAdd; // 按钮 加号 +
private JButton btnEqual; // 按钮 等于 =
private JButton btnClear; // 按钮 清除
StringBuffer sb; // 定义一个变量,存储文本框里面的数值
Integer number1; // 加数
Integer number2; // 被加数
Integer sum; // 和
boolean b; // 运算符是否被点击
// 构造方法
GuiDemo() {
// 初始化原始数据
initData();
// 控件初始化
initUI();
}
private void initData() {
sb = new StringBuffer("");
number1 = 0;
number2 = 0;
sum = 0;
b = false;
}
private void initUI() {
f = new JFrame("计算器");
f.setSize(400, 200); // 设置窗口的宽高
f.setLocation(100, 100); // 设置窗口的起始点
// f.setLayout(new FlowLayout()); // 会重新绘制大小
f.setResizable(false); // 设置窗口一旦创建好,不能在改变大小。
// f.setBackground(Color.BLUE);
// 关闭窗口的事件
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true); // 让窗口可见
// 在窗口上面增加一个文本框
tf = new JTextField();
tf.setBounds(20, 50, 360, 33);
tf.setText("0");
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setBackground(Color.WHITE);
f.add(tf);
// tf 鼠标事件
tfMouseEvent();
// 在窗口上面添加按钮
btn1 = new JButton("1");
btn1.setBounds(20, 100, 50, 33);
f.add(btn1);
btn2 = new JButton("2");
btn2.setBounds(btn1.getBounds().x + 70, 100, 50, 33);
f.add(btn2);
btnAdd = new JButton("+");
btnAdd.setBounds(btn2.getBounds().x + 70, 100, 50, 33);
f.add(btnAdd);
btnEqual = new JButton("=");
btnEqual.setBounds(btnAdd.getBounds().x + 70, 100, 50, 33);
f.add(btnEqual);
btnClear = new JButton("C");
btnClear.setBounds(btnEqual.getBounds().x + 70, 100, 50, 33);
f.add(btnClear);
// 按钮点击事件
btnEvent();
f.repaint();
}
private void tfMouseEvent() {
tf.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println("mouseReleased");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println("mousePressed");
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println("mouseExited");
tf.setBackground(Color.white);
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println("mouseEntered");
tf.setBackground(Color.cyan);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO 自动生成的方法存根
System.out.println("mouseClicked");
}
});
}
private void btnEvent() {
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn1.getText());
tf.setText(sb.toString());
}
});
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (b) {
sb = new StringBuffer("");
b = false;
}
sb.append(btn2.getText());
tf.setText(sb.toString());
}
});
btnAdd.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = true;
number1 += new Integer(tf.getText());
tf.setText(number1.toString());
}
});
btnEqual.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
b = false;
number2 = new Integer(tf.getText());
sum = number1 + number2;
tf.setText(sum.toString());
}
});
btnClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
initData();
tf.setText("0");
}
});
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
new GuiDemo();
}
}
四、作业
自己做一个计算器,实现加减乘除四则运算。
如果想增加难度,可以让计算器实现不同进制之间的计算与转换。
java11 - GUI图形用户界面编程的更多相关文章
- java第八节 GUI/图形用户界面
/* *第8讲 GUI/图形用户界面 * AWT的基础知识 * GUI全称是Graphical User Interface,即图形用户界面 * JDK中提供了AWT和Swing两个包,用于GUI程序 ...
- Java图形用户界面编程
1.Java图形用户界面编程概述 JavaAPI中提供了两套组件用于支持编写图形用户界面:AWT(抽象窗口包)和Swing 2. 容器(Container):重量级容器和轻量级容器(一个容器可以放置 ...
- I/O系统,多线程、图形用户界面编程
多线程 进程与线程区别: 进程需要分配独立的内存空间:线程在同一内存空间中工作,可以共享同一块内存和系统资源 与Java相关的API: 1)Thread类 方法:start()启动: urn() : ...
- 黑马程序员_<<GUI(图形用户界面)--------1>>
--------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. GUI图形用户界面 1.简述 Gra ...
- java之 22天 GUI 图形界面编程(一)
转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) import java.awt.Button; import java.awt.FlowLayo ...
- GUI(图形用户界面)
一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...
- python学习笔记(十 一)、GUI图形用户界面
python图形用户界面就是包含按钮.输入框.选择框等组件的窗口.主要依赖与工具包进行代码编写.python GUI工具包并发互斥的,你可以选择多个工具包进行安装,有极大选择空间.每个工具包都有不同用 ...
- GUI 图形用户界面 [学习笔记]
今晚返璞归真了一把, 系统了解了一下GUI的有关知识: GUI(Graphical User Interface) 图形用户界面 是指采用图形方式显示的计算机操作用户接口.与早期计算机使用的命令行界面 ...
- linux系统中firewalld防火墙管理工具firewall-config(GUI图形用户界面)
firewall-config是firewalld防火墙管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作. firewall-config的界面如下图(在终端直接运行fire ...
随机推荐
- apache (order allow,deny or deny,allow)
平台:"rhel6.2" 实验内容: "测试apache‘order allow,deny’ or ‘order deny,allow’ 功能" 配置文件:&q ...
- python_为被装饰的函数保留元数据
案例: 在函数对象中保存着一些函数的元数据,如: f.__name__ 函数名 f.__doc__ 函数文档 f.__moudle__ 函数所 ...
- BSA Network Shell系列-nexec命令
# nexec ## 1 说明:nexec是远程命令接口引擎 ,用于在远程主机执行命令 nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname &qu ...
- XML,HTML,XHTML
对于上面3种技术,我们经常使用到,这里具体的做一个总结,来对比一下这3个东西. 什么是XML? XML即Extentsible Markup Language(可扩展标记语言),是用来定义其它语言的一 ...
- JAVA中生成、解析二维码图片的方法
JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...
- Android4.0新控件
谷歌在推出Android4.0的同时推出了一些新控件,Android4.0中最常用的新控件有下面5种. 1. Switch的使用 Switch顾名思义,就是开关的意思,有开和关两种状态. 当Swit ...
- PDO错误调试
在服务器上用PDO操作数据库,怎么都获取不到数据,query语句返回null,但是同样的代码在本地运行无误.SO,开始找bug. <?php $host='localhost'; $dbname ...
- awk的+=用法
awk增加统计列值为增加列数或进行运行结果统计,使用符号 + =.增加的结果赋给符号左边变量值,增加到变量的域在符号右边.例如将 $ 1加入变量total,表达式为toatl+=$1.列值增加很有用. ...
- 【转】 linux下的awk程序执行
#!/bin/awk -f awk脚本开头使用这个命令,赋予这个文本文件以执行的权限.这样做之后,你就可以在命令行中用类似于下面这样的方式调用并执行这段awk程序了. BEGIN和END的大括号必须紧 ...
- 刚买个炼狱蝰蛇1800dpi的下完驱动提示没有发现鼠标
2017-02-19补充:可以下载下面的程序 ,也可以访问 http://cn.razerzone.com/synapse/ 下载雷云 也可解决问题 ------------------------ ...