JAVA学习课第五十八届 — GUI

GUI

Graghical User Interface(图形用户接口)

java为GUI提供的对象都存在java.awt和java.swing包中

Java的GUI做的的确干只是C++等。不打算浪费过多的时间在这上面

一个简单的窗口演示

public static void main(String[] args){

		Frame f = new Frame("新窗口");
		f.setLocation(400, 200);//设置窗口的位置

		f.setSize(500, 400);//设置窗口大小
		//f.setBounds(400, 200, 500, 400);功能相当于上面两句
		f.setLayout(new FlowLayout());//设置 流式 布局
		Button bt = new Button("一个button");
		f.add(bt);
		f.setVisible(true);//显示窗口
	}

显示出窗口后发现无法关闭窗口,就用到了事件监听机制

其组成:事件源(组件)、事件(Event)、监听器(Listener)、事件处理(引发事件后处理方式)

 

	public static void main(String[] args){

		Frame f = new Frame("新窗口");
		f.setLocation(400, 200);//设置窗口的位置

		f.setSize(500, 400);//设置窗口大小
		//f.setBounds(400, 200, 500, 400);功能相当于上面两句
		f.setLayout(new FlowLayout());//设置 流式 布局
		Button bt = new Button("一个button");
		f.add(bt);

		//由于关不掉这一事件。 要注冊一个监听器
		//窗口适配器类WindowAdapter,已经覆盖了全部方法,便捷于创建监听器
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});//加入窗口监听

		f.setVisible(true);//显示窗口

	}

用户对组件操作。就是一个事件。那么产生事件的组件就是事件源。

ActionListener演示:

public static void main(String[] args){

		Frame f = new Frame("新窗口");
		f.setLocation(400, 200);//设置窗口的位置

		f.setSize(500, 400);//设置窗口大小
		//f.setBounds(400, 200, 500, 400);功能相当于上面两句
		f.setLayout(new FlowLayout());//设置 流式 布局
		Button bt = new Button("一个button");
		f.add(bt);

		//由于关不掉这一事件, 要注冊一个监听器
		//窗口适配器类WindowAdapter,已经覆盖了全部方法,便捷于创建监听器
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});//加入窗口监听

		//在button上加入一个监听事件:点击一下退出

		bt.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {

				//System.out.println("按了");
				System.exit(0);
			}
		});

		f.setVisible(true);//显示窗口

	}

键盘和鼠标监听事件

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Main {

	private Frame f;
	private TextField tf;//文本框
	private Button bt;
	public Main(){
		init();
	}
	private void init(){
		f = new Frame("鼠标和键盘监听");
		bt = new Button("button");
		f.setBounds(400, 200, 500, 400);
		f.setLayout(new FlowLayout());
		tf = new TextField(40);//指定列数
		f.add(tf);
		f.add(bt);
		myEvent();
		f.setVisible(true);
	}

	private void myEvent(){
		//给文本框加入键盘监听
		tf.addKeyListener(new KeyAdapter() {

			@Override
			public void keyPressed(KeyEvent e) {//按下

	//System.out.println("key Pressed : "+e.getKeyChar()+" : "+e.getKeyCode()+" : "+e.getKeyText(e.getKeyCode()));//按下即打印
			/*	int code = e.getKeyCode();
				if(!(code>=KeyEvent.VK_0 && code <= KeyEvent.VK_9))//推断
					{
						System.out.println("必须数字");
						e.consume();//使用。不会依照默认的事件处理方式
					}
				if(e.getKeyCode()==KeyEvent.VK_ENTER){//按下回车
					System.out.println("enter.....");
				}
				*/
				if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){//按下Ctrl+回车
					System.out.println("Crtl enter.....");
				}
			}

		});
		//在窗口上加入退出监听器
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});

		//在button上加入鼠标监听器
		bt.addMouseListener(new MouseAdapter() {

			private int count = 1;//计数器

			public void mouseEntered(MouseEvent e) {//鼠标碰到即触发

				tf.setText("mouse enter : "+count++);//信息加入到文本框

			}
			public void mouseClicked(MouseEvent e) {//点击
				if(e.getClickCount()==2){//得到点击次数,双击
					System.out.println("mouseClicked Double click");
				}
				/*else if(e.getClickCount()==1){
					System.out.println("mouseClicked only click");
				}*/
				}
			});
		}
	public static void main(String[] args){
		new Main();

	}
}

关于Swing包中的。须要在Ecplice安装插件。

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-08-06 21:33:48

JAVA学习课第五十八届 — GUI的相关文章

JAVA学习课第五 — IO流程(九)文件分割器合成器

文件分割器 private static final int SIZE = 1024 *1024; public static void splitFile(File file) throws IOException{ //用读取流关联文件(不确定文件格式) FileInputStream fis = new FileInputStream(file);//源是一个 byte[] by = new byte[SIZE];//定义1M的缓冲区 FileOutputStream fos = null

JAVA学习课第五十三届 — IO流程(七)File打靶 &amp;amp; Properties设置

一个.锻炼 深度遍历目录 深度遍历非常自然而然想到递归,而递归就非常自然的想到事实上现的底层算法是栈 对指定文件夹下列出全部内容(包括子文件夹的内容) PS:建议不要遍历C盘 import java.io.*; public class Main { public static void main(String[] args) throws IOException { File dir = new File("D:\\ACM集训"); ListAllDemo(dir,0); } pub

java学习之第五章编程题示例(初学篇)

1 /* 2 Animal.java 3 */ 4 package animal; 5 6 public abstract class Animal { 7 public abstract void cry(); 8 public abstract String getanimalName(); 9 } 1 //Dog.java 2 package animal; 3 4 public class Dog extends Animal 5 { 6 7 String aa="旺旺"; 8

第五周JAVA学习笔记(五)

将指定目录下的所有文件显示到列表框(JList)组件中, :效果图如下:                  import java.awt.BorderLayout; import java.io.File; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class kuang { public st

java学习笔记(五)枚举

原文出处:http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数据集",春夏秋冬四个数据元素组成了四季的"数据集". 在java中如何更好的使用这些"数据集"呢?因此枚举便派上了用场,以

JAVA学习第十五课(多态及其基本应用)

多态: 面向对象的第三个特征,定义:某类事物存在多种形态,比如,函数就具备多态性,同名的一个函数,它的参数列表不一样,它的存在性就不一样,还有同一个函数,放在父类和放在子类,它的存在性也就不一样. 对象也存在多态性. 例子:动物有猪.猫.狗等 猫这个对象对应的类是猫类 猫 x = new 猫(): 同时,猫还是动物的一种,也就可以把猫成为动物 动物 y = new 猫(); 动物 z = new 狗(); 动物是狗和猫集体事物中抽取出来的父类 父类引用指向了子类对象 一.概述 //对象的多态性

JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题

一.多线程下的单例设计模式 利用双重判断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Single(); private Single(){} public static Single getInstance() { return t; } } */ //懒汉式 class Single { private static Single t = null; private Single()

JAVA学习课第二十八届(多线程(七))- 停止-threaded多-threaded面试题

主密钥 /* * wait 和 sleep 差别? * 1.wait能够指定时间也能够不指定 * sleep必须指定时间 * 2.在同步中,对CPU的运行权和锁的处理不同 * wait释放运行权,释放锁    sleep释放运行权,不释放锁 */ //同步里具备运行资格的线程不止一个,可是能得到锁的仅仅有一个,所以能运行的也仅仅有一个 一.停止线程的方式 不可能让线程一直在执行.所以须要让线程停止 1.定义循环结束标记 一般而言,线程执行代码都是循环的,仅仅要控制了循环就能够结束任务 2.使用i

java学习第23天(GUI)

学习java很久了,今天算是接触到了图形化界面,首先是什么事GUI呢?GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观 Window常用子类:Frame Dialog 简单的窗体创建过程: Frame f = new Frame("my window"); f.setLayout(new FlowLayout());//设置排版方式 f.setSize(300,400);//设置窗体大小 f.setLoc