`
Luob.
  • 浏览: 1578789 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之 22天 GUI 图形界面编程(一)

    博客分类:
  • Java
阅读更多
GUI(图形用户界面)

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * GUI(图形用户界面)
 *  Graphical User Interface(图形用户接口)
 *  用图形的方式,来显示计算机操作的界面,这样更方便更直观.
 * 
 * CLI
 *  Command Line User Interface(命令行用户接口)
 *  就是常用的Dos命令行操作.
 *  需要记忆一些常用的命令.操作更直观.
 * 
 * 举例:
 *   比如:创建文件夹,或者删除文件夹等 
 *   md haha   del haha  
 *   
 *   
 * Java的GUI提供的对象都存在 java.Awt 和 javax.Swing 两个包中.
 * 
 * java.Awt:Abstract Window ToolKit(抽象 窗口工具包)
 * 	  需要调用本地系统方法实现功能.属重量级控件 (跨平台不够强)
 *  
 * java.Swing:在AWT的基础上,建立的一套图形界面系统,器重提供了更多的组件,
 *   而且完全由java实现,增强了移植性,属于轻量级控件.(跨平台很好)
 *   
 * java.swt: IBM 公司开发 Eclipse 用的组件工具 可以Eclipse网站下载后就可以使用了.
 * 
 * 
 * 布局管理器
 * 1)容器中的组件的排放方式,就是布局.
 * 2)常见的布局管理器
 *   FlowLayout(流式布局管理器)
 *     从左到右的顺序排列
 *     Panel默认的布局管理器
 *   BorderLayout(辩解布局管理器)
 *     东  南  西  北   中
 *     Frame 默认的布局管理器
 *     不指定布局方式,默认 满屏覆盖,在添加一个 也是 满屏覆盖
 *   GridLayout (网格布局管理器)
 *     规则的矩阵
 *   CardLayout  (卡片布局管理器)
 *     选项卡
 *   GridBagLayout(网格包布局管理器)
 *    非规则的矩阵
 *    
 * 事件监听机制组成
 *  事件源:  
 *  事件:Event
 *  监听器:Listener
 *  时间处理:(引发事件后处理方式)
 *  
 *  事件源:就是awt包或者swing包中的那些图像界面组件.
 *  事件:每个事件源都有自己特定的对应时间和共性时间.
 *  监听器:可以出发某一个事件的动作都已经封装到监听器中.
 */


public class GuiDemo {
	public static void main(String[] args) {
		Frame f=new Frame("my awt");
		f.setSize(500,400);
		f.setLocation(300,200);
		f.setLayout(new FlowLayout());
		
		Button b=new Button("我是一个按钮");
		
		f.add(b);
		
		f.addWindowListener(new MyWin());
		
		f.setVisible(true);
		System.out.println("Hello world!");
	}

}

//因为接口WindowLinstener中的所有方法都被子类 WindowAdapter实现了,.
//并且覆盖了其中的所有方法,那么我们只能继承 WindowAdapter 覆盖我们的方法即可
class MyWin extends WindowAdapter{
	
	@Override
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
		//System.out.println("Window closing"+e.toString());
		System.out.println("我关了");
		System.exit(0);
	}
	@Override
	public void windowActivated(WindowEvent e) {
		//每次获得焦点 就会触发
		System.out.println("我活了");  
		//super.windowActivated(e);
	}
	@Override
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
		System.out.println("我开了");
		//super.windowOpened(e);
	}
	
}



简单Frame

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class FrameDemo {

	//定义该图像中所需要的组件的引用
	private Frame f;
	private Button but;
	
	FrameDemo(){
		init();
		
	}
	
	public void init(){
		
		f=new Frame("my freame");
		f.setBounds(300,100,600,500);
		f.setLayout(new FlowLayout());  //采用流式布局
		
		but=new  Button("my button");
		//将组件添加到 frame中
		f.add(but);
		
		//加载一下窗体上的事件.
		myEvent();
		//显示窗体
		f.setVisible(true);
	}
	private void myEvent(){
		f.addWindowListener(new WindowAdapter(){
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				//super.windowClosing(e);
				System.exit(0);
			}
		});
		
		//让按钮具备退出程序的功能
		/*
		 * 按钮就是事件源
		 * 那么选择那个监听器呢?
		 * 通过关闭窗体实例了解到,下个要知道那个组件具备什么样的特有监听器,
		 * 需要查看该组件对象的功能.
		 */
		//添加一个活动监听
		but.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.out.println("退出, 按钮干的");
				System.exit(0);
			}
		});
		
	}
	
	public static void main(String[] args) {
		FrameDemo f=new FrameDemo();
	}

}


键盘和鼠标事件

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 MouseAndKeyEvent {

	private Frame f;
	private Button but;
	private TextField tf;
	
	public MouseAndKeyEvent() {
		init();
	}

	private void init(){
		f=new Frame("me frame");
		f.setBounds(300, 200, 600, 500);
		f.setLayout(new FlowLayout());
		
		tf=new TextField(20);
		but=new Button("my Botton");
		
		f.add(tf);
		f.add(but);
		
		event();
		
		f.setVisible(true);
	}

	private void event(){
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		
		});
		tf.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e){
				int code=e.getKeyCode();
				if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
					System.out.println(code+"....非法的输入");
					e.consume();  //不执行加入文本框.
				}
				
			}
			
		});
		
		
		
		but.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.out.println("actionPerformed 活动一次");
			}
		});
		
		but.addMouseListener(new MouseAdapter() {
			private int count=0;
			private int clickCount=1;
			public void mouseEntered(MouseEvent e){
				System.out.println("鼠标进入到改组件"+count++);
			}
			
			public void mouseClicked(MouseEvent e){
				if(e.getClickCount()==2){
					System.out.println("双击动作");
				}else
					System.out.println("点击动作"+clickCount++);
				
			}
			
		});
		//添加 键盘事件
		but.addKeyListener(new KeyAdapter() {
		
			public void keyPressed(KeyEvent e){
				System.out.println(e.getKeyChar()+"..."+e.getKeyCode());
				System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
				//enter  就退出
				/*if(e.getKeyCode()==KeyEvent.VK_ENTER)
					System.
					exit(0);*/
				
				//ctrl + Enter 发送消息
				if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){
					System.out.println("我要发送消息!");
				}
				
			}
		
		});
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MouseAndKeyEvent();
	}

}

3
1
分享到:
评论

相关推荐

    Java_GUI图形化用户界面编程的基础知识

    Java的GUI(图形用户界面)编程是构建桌面应用程序的关键部分,它允许用户通过图形化的方式与程序进行交互。在Java中,GUI的实现基于AWT(Abstract Window Toolkit)库,这是一个跨平台的工具包,使得开发者可以编写...

    如何进行Java GUI图形用户界面编程

    AWT中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。...虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准,但它虽然借着Eclipse的优异表现,以不可阻挡之势向前发展着。

    GUI图形界面编程

    GUI:Graphics User Interface.图形用户界面 使用图形的方式借助菜单,按钮等标准界面元素和鼠标操作,来帮助用户方便的向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形方式显示给用户。即:可以通过...

    第十一章GUI图形用户界面编程.pdf

    GUI 图形用户界面编程 本章节将介绍 GUI 图形用户界面编程的基本概念和实现方法。GUI 编程是指使用图形用户界面来与用户交互的编程技术。 Python 提供了多种 GUI 库,包括 Tkinter、wxPython 和 PyQT 等,本章节将...

    精通GUI图形界面编程

    MATLAB的图形界面编程书籍, 精通GUI, 很有用 作者:施晓红 周佳 出版社:北京大学出版社 出版日期:2003年1月

    Matlab GUI图形界面编程教材(施晓红)

    Matlab GUI图形界面编程经典教材,施晓红主编。

    如何进行JavaGUI图形用户界面编程.doc

    Java GUI 图形用户界面编程是 Java 语言中一个重要的组成部分,用于建立和设置图形用户界面。Java 提供了多种 GUI 库包,包括 AWT、Swing 和 SWT/JFace,每种库包都有其优缺点和应用场景。本文将详细介绍 Java GUI ...

    Java GUI图形化用户界面编程的基础知识

    java的GUI编程(Graphic User Interface,图形用户接口),是在它的抽象窗口工具箱(Abstract Window Toolkit,AWT)上实现 的,java.awt是AWT的工具类库,其中包括了丰富的图形、用户界面元件和布局管理器的支持。

    java图形界面编程插件

    Java图形界面编程插件是Java开发中用于创建用户界面的重要工具,它极大地方便了开发者设计和构建美观、功能丰富的应用程序。在这个特定的插件中,我们关注的是SWING插件,它是一个针对Java的GUI(图形用户界面)库,...

    精通GUI图形界面编程(MATLAB) part2

    "精通GUI图形界面编程(MATLAB) part1"的另一部分,由于文件较大,所以分成两个了,见谅啊

    Java GUI 图形用户界面

    Java GUI,全称为Java图形用户界面,是Java编程语言中用于创建交互式图形界面的技术。在Java中,GUI主要用于构建桌面应用程序,使用户可以通过视觉元素如按钮、文本框、菜单等进行交互。Java GUI的设计遵循事件驱动...

    GUI图形界面编程 pdf书籍

    GUI图形界面编程是计算机软件开发中的一个重要组成部分,它使得用户能够通过直观的图形化操作来与应用程序进行交互。MATLAB,全称为“矩阵实验室”,是一款强大的数学计算和数据分析软件,同时也提供了丰富的工具箱...

    java GUI 图形界面

    java GUI 学习java比用的东西

    java图形界面编程教案

    Java图形用户界面(GUI)编程是Java开发中的一个重要部分,它允许开发者创建具有交互性的桌面应用程序。本教案全面涵盖了Java GUI编程的基础知识,旨在帮助学习者掌握如何在Java环境中设计和实现用户友好的图形界面...

    java连接mysql的 gui图形界 面实现增删改查

    在Java编程中,连接MySQL数据库并实现GUI图形界面的增删改查功能是一项常见的任务,尤其在开发桌面应用时。这个任务涉及到多个知识点,包括Java的数据库连接、Swing或JavaFX图形界面库的使用、SQL语言以及多线程处理...

    java图形界面编程

    本书介绍了java图形界面(GUI)编程的基础知识,全面,详细,生动。

    java简单计算器开发GUI图形化界面设计与实现(项目源码+课程设计报告)

    学习异常处理、线程、图形用户界面设计、 网络通信等内容。使学生的专业知识进一步完善和丰富,为将来的开发和研究工 作打下一定的基础。 1.2. 课程任务 (1) 巩固和加深学生对 Java 语言课程的基本知识的理解和...

Global site tag (gtag.js) - Google Analytics