/*学java的一些类和方法要搞清楚的层次和结构*/
package niminglei;
import java.awt.*;
import java.awt.event.*;
public class Test_3{public static void main(String[] args){aa a=new aa();}
}
class aa extends Frame{Label l1,l2,l3;Button b1,b2,b3,b4,b5,b6;TextField tf1,tf2,tf3;int count1,count2,count3;Color c;private class changeText implements   ActionListener,TextListener //设置监听器,实现按钮的功能和文本框的功能{public void actionPerformed(ActionEvent e){ //实现按钮的功能if(e.getSource()==b1){tf1.setText((count1++)+"");}if(e.getSource()==b2){tf2.setText((count2++)+"");}if(e.getSource()==b3){tf3.setText((count3++)+"");}if(e.getSource()==b4){tf1.setText((count1--)+"");}if(e.getSource()==b5){tf2.setText((count2--)+"");}if(e.getSource()==b6){tf3.setText((count3--)+"");}int c1=Integer.parseInt(tf1.getText());int c2=Integer.parseInt(tf2.getText());int c3=Integer.parseInt(tf3.getText());if(c1>=255) {c1=0;count1=0;}if(c2>=255) {c2=0;count2=0;}if(c3>=255) {c3=0;count3=0;}c=new Color(c1,c2,c3);p1.setBackground(c);}//文本框的功能public void textValueChanged(TextEvent e) {c=new Color(Integer.parseInt(tf1.getText()),Integer.parseInt(tf2.getText()),Integer.parseInt(tf3.getText()));p1.setBackground(c);}}Panel p=new Panel(); //设置两个中间容器Panel p1=new Panel();GridBagLayout gbl=new  GridBagLayout(); //gbl是网格包布局管理器GridBagConstraints gbc=new GridBagConstraints(); //gbc是网格包约束条件public aa() //一个构造函数{setSize(500, 400);p.setLayout(gbl);gbc.fill=GridBagConstraints.BOTH;this.setLabel(); //设置标签this.setButton_add(); //设置增加数值的按钮this.setTxetField();  // 设置文本框this.setButton_sub(); // 设置减少数值的按钮this.setPanel();  // 设置中间容器做调色板add(p); //这个整体放在一个容器里面setVisible(true); //可见//窗口的关闭功能this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);}});}private void setPanel() {gbc.weightx=10; // x的权重gbc.weighty=10; // y的权重gbc.gridx=0;  //   x距离左上角的距离gbc.gridy=4; //   y距离左上角的距离gbc.gridwidth=4; // 横向跨几个网格//gbc.gridheight=4; 纵向跨几个网格gbc.insets=new Insets(10,10,10,10);// 组件之间间距/*这些都是对约束条件而言的想要采用它还必须要调用网格包的布局管理器的setConstraints来绑定p1和gbc;*/p1.setBackground(new Color(220,220,220));gbl.setConstraints(p1, gbc);p.add(p1);}private void setButton_sub() {//添加减按钮b4=new Button("-");b5=new Button("-");b6=new Button("-");b4.setFont(new Font("宋体",Font.PLAIN,20));b5.setFont(new Font("宋体",Font.PLAIN,20));b6.setFont(new Font("宋体",Font.PLAIN,20));gbc.gridx=3;gbc.gridy=0;gbl.setConstraints(b4, gbc); //设置网格包布局管理器的约束gbc.gridy=1;gbl.setConstraints(b5, gbc);gbc.gridy=2;gbl.setConstraints(b6, gbc);p.add(b4);p.add(b5);p.add(b6);b4.addActionListener(new changeText()); //添加监听器,添加监听器的参数为监听器对象b5.addActionListener(new changeText());b6.addActionListener(new changeText());}private void setTxetField(){ //添加文本框tf1=new TextField(5);tf2=new TextField(5);tf3=new TextField(5);tf1.setText("220");tf2.setText("220");tf3.setText("220");count1=Integer.parseInt(tf1.getText()); //用包装类实现把字符串转换成int类型count2=Integer.parseInt(tf2.getText());count3=Integer.parseInt(tf3.getText());gbc.weightx=1;gbc.weighty=1;gbc.gridx=2;gbc.gridy=0;gbl.setConstraints(tf1, gbc);gbc.gridy=1;gbl.setConstraints(tf2, gbc);gbc.gridy=2;gbl.setConstraints(tf3, gbc);p.add(tf1);p.add(tf2);p.add(tf3);tf1.addTextListener(new changeText());//添加文本框的监听器,方法的参数为一个监听器的对象tf2.addTextListener(new changeText());tf3.addTextListener(new changeText());this.setKeyPress(tf1);//把添加监听器写成了一个方法这个方法可以传参数this.setKeyPress(tf2);// 之前我这个功能实现不了this.setKeyPress(tf3);//是什么东西传参我搞错了,方法传参而不是类传参。}private void setKeyPress(TextField tf){tf.addKeyListener(new KeyAdapter() { //键盘监听器public void keyPressed(KeyEvent e) //键控的{char ch = e.getKeyChar(); //得到键盘上的值if(!(ch>='0'&&ch<='9')){e.consume();//不是0~9的数字就不读取}}});}private void setButton_add() {  b1=new Button("+");b2=new Button("+");b3=new Button("+");b1.setFont(new Font("宋体",Font.PLAIN,20));b2.setFont(new Font("宋体",Font.PLAIN,20));b3.setFont(new Font("宋体",Font.PLAIN,20));gbc.insets=new Insets(10,80,10,10);gbc.gridx=1;gbc.gridy=0;gbc.weightx=1;gbc.weighty=1;gbl.setConstraints(b1, gbc);gbc.gridy=1;gbl.setConstraints(b2, gbc);gbc.gridy=2;gbl.setConstraints(b3, gbc);p.add(b1);p.add(b2);p.add(b3);b1.addActionListener(new changeText());b2.addActionListener(new changeText());b3.addActionListener(new changeText());}private void setLabel(){    l1=new Label("红色",Label.CENTER);l2=new Label("绿色",Label.CENTER);l3=new Label("蓝色",Label.CENTER);l1.setBackground(Color.RED);l2.setBackground(Color.GREEN);l3.setBackground(Color.BLUE);gbc.gridx=0;gbc.gridy=0;gbc.weightx=1;gbc.weighty=1;gbc.insets=new Insets(10,10,10,10);gbl.setConstraints(l1, gbc);gbc.gridy=1;gbl.setConstraints(l2, gbc);gbc.gridy=2;gbl.setConstraints(l3, gbc);p.add(l1);p.add(l2);p.add(l3);}
}

java——jui的应用相关推荐

  1. java jui 正则表达式_常规正则表达式练习

    PS:join()数组转串,split()串转数组 1.test():在字符串查找符合正则的内容,如果查找到返回true,反之返回false 用法:正则.test(字符串) 2.search():在字 ...

  2. java jui 正则表达式_正则表达式-Gorilla City-51CTO博客

    正则表达式,简称为regex,是文本模式的描述方法.例如,\d是一个正则表达式,表示一位数字字符,即任何一位0到9的数字. 使用步骤 python中所有正则表达式的函数都在re模块中. ▎python ...

  3. QTranslate国际化及多语言切换

    注意:本文不介绍如何使用Qt的国际化.本地化支持.本文针对的是偏底层的.Manual和其他资料中很少涉及的东西.所以,继续之前,请先确保:你已经对如何使用Qt的国际化比较熟悉了. 本文针对的是  tr ...

  4. java基础总结-java技术栈快速复习

    java基础 java基础概念 java概述和语言背景 java语言是没有sun公司(Stanford University Network:斯坦福大学网络)在1995年推出的计算机语言 java之父 ...

  5. vivo一面翻车,整理完这份Java面经分类汇总,我突然悟了

    前言 这篇记录一下今年在vivo面试的准备所有面经,我给大家简单的做了一个分类汇总,本来是用来为vivo二面提前做准备的,谁知道一面都没过,现在人还在人才库里. 我还是很想去vivo的,希望下次能有机 ...

  6. 开发三年,靠这份Java面试宝典,拿到字节offer

    前言 前几天由于工作的原因一直没怎么看私信,昨天在整理私信的时候看到了一个粉丝给我疯狂私信想要我帮忙整理一份大厂面试题,说自己工作也有几年了想跳槽冲刺一下,但是不知道该怎么做好前期准备.我看到这个粉丝 ...

  7. 基于《狂神说java》GUI编程--学习笔记

    前言: 本笔记参考于学友:小尹^_^ :本笔记仅做学习与复习使用,不存在刻意抄袭. ---------------------------------------------------------- ...

  8. java自动售货机代码_急求简易自动售货机(java编程)

    引用z17199的回答: package com.test; import java.util.Scanner; import com.sun.java_cup.internal.internal_e ...

  9. VIVO一面竟然翻车,十年Java编程开发生涯

    1. Hashmap底层(数组+链表+红黑树)hashmap为什么线程不安全,如何保证线程安全,就扯到concurrenthashmap hashmap底层实现 多线程会出现什么情况 扩容机制是什么为 ...

  10. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

最新文章

  1. c语言程序计算bmi指数,计算BMI的程序怎么写
  2. TensorFlow AI 新品更易用!联手NVIDIA,支持Swift和JavaScript
  3. 浅谈 Request Response
  4. 八、关于防水透湿整理
  5. 信息学奥赛一本通 1109:开关灯 | OpenJudge NOI 1.5 31:开关灯
  6. 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
  7. day25 java的集合(3)List
  8. 半学期学计算机有感论文,【计算机学习心得论文】_计算机学习心得论文参考资料-毕业论文范文网...
  9. pycharm2019新建python文件_PyCharm 2019安装教程
  10. 小白记事本--学不明白还怕忘记指针--loading未完待续
  11. 【回血赠书第4期】9月新书不一般,你涨知识我买单
  12. JZ7-斐波那契数列
  13. php 写入txt换行_php是如何向文件中写入换行
  14. 自媒体文章如何有效提高原创度?
  15. 学习笔记:云计算安全CCSK
  16. permutohedral lattice理解
  17. Referrer 还是 Referer?
  18. 【洛谷】P1138 第k小整数
  19. 域用户绑定计算机,域批量绑定用户帐户与计算机帐户
  20. 计算机设置共享时出现无法保存,win7共享打印机时提示无法保存打印机设置怎么办...

热门文章

  1. 电子基础元器件——电阻器
  2. 猎头推荐转行大数据分析师骗局
  3. c语言看门狗的作用,看门狗定时器工作原理及作用
  4. Unity 基础 之 实现简单监听晃动(摇一摇)手机设备震动手机设备的事件的功能
  5. win8连连看第二季1_第1季
  6. word文档中如何将软回车替换为硬回车
  7. [深度学习 - 实战项目] yoloV5人脸侦测arcFace人脸识别silentFace静态活体检测
  8. CSP - 201403-1 - 相反数 (C++)
  9. 【实战】Udacity弹窗测试—ABtest
  10. c#生成二维码,一维码(条形码)