黑马程序员---java基础之GUI

------- android培训java培训、期待与您交流! ----------

GUI(图形用户界面)
Graphical User Interface  (图形用户接口)
用图形的方式,来显示计算机操作的界面,这样更方便更直观
CLI
Command line User Interface(命令行用户接口)
就是常见的Dos命令行操作
需要记忆一些常用的命令,操作不直观
Awt与Swing
java.Awt:  Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能.属重量级控件.(比较依赖于平台)
java.Swing: 在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属轻量级控件. 

Container:

为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来.
容器中的组件的排放方式,就是布局.
常见的布局管理器:
FlowLayout(流式布局管理区)
 *从左到右的顺序排列
 *Panel默认的布局管理器
BoraderLayout(边界布局管理器)
 *东,南,西,北,中
 *Frame默认的布局管理器.
GridLayout(网格布局管理器)
 *规则的矩阵
CardLayout(卡片布局管理器)
 *选项卡
GridBagLayout(网格包布局管理器)
 *非规则的矩阵
常用方法:
setSize(x,y)设置大小
setLocation(x,y)设置距离远点的位置
setLayout(Layout)设置布局管理器


创建图形化界面的步骤:
1.创建frame窗体.
2.对窗体进行基本设置
比如大小,位置,布局
3.定义组件
4.将组件通过窗体的add方法添加到窗体中.
5.让窗体显示,通过setVisible();

事件监听机制组成
事件源(组件)
*就是AWT包或者Swing包中的那些图形界面组件
事件(Event)
*每一个事件源都有自己特有的对应事件和共性事件
监听器(Listener)
*将可以触发某一事件的动作(不止一个动作)都已经封装到了监听器中.
##以上三者,在java中都已经定义好了,直接获取其对象来用就可以了
我们要做的事情就是,就是对产生的动作进行处理.
事件处理(引发事件后处理方式)
  事件监听
   1.确定事件源(容器或组件)
   2.通过事件源对象的addXXXListensr()方法将监听器注册到该事件源上.
该方法中接受XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象.
**一般用匿名内部类来表示
   3.在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收.
   4,事件触发后会把事件打包成对象传递给该变量(其中包括事件源对象,通过getSource()或者,getComponent()获取)
综合示例:列出输入目录的内容,如果不存在,就提示错误

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class test
{
	private Frame f;
	private TextField tf;
	private Button but;
	private TextArea ta;
	private Dialog dl;
	private Label lb;
	private Button okbut;

	test(){
		init();//加载窗口
	}
	public void init(){//窗口初始化
		f = new Frame("显示文件夹文件");//定义主窗体
		f.setBounds(500,400,500,400);
		tf = new TextField("请输入目录路径",50);//定义输入框
		but = new Button("转到");//定义转到按钮
		but.setSize(50,100);
		ta = new TextArea(20,60);//定义显示文本区
		f.setLayout(new FlowLayout());
		f.add(tf);
		f.add(but);
		f.add(ta);
		f.setVisible(true);
		/**/
		dl = new Dialog(f,"错误_my",true);//定义错误提示窗口
		dl.setBounds(600,500,300,200);
		dl.setLayout(new FlowLayout());
		okbut = new Button("确定");//错误提示窗口确定按钮
		okbut.setSize(400,200);
		lb = new Label();//定义错误提示窗口标签
		/**/
		myEvent();//加载监听器
	}

	public void myEvent(){
		//鼠标点击事件
		but.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				getDir();
			}

		});
		//错误提示窗口关闭事件
		dl.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				dl.setVisible(false);
			}
		});
		错误提示窗口确定按钮事件
		okbut.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dl.setVisible(false);
			}
		});
		//主窗口关闭事件
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		//鼠标点击输入区事件
		tf.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent e){
				tf.setText("");
			}
		});
		//文本区键盘回车事件
		tf.addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				if(e.getKeyCode() == KeyEvent.VK_ENTER)
					getDir();
			}
		});

	}
	public void getDir(){//遍历目录
		String dirPath = tf.getText();
				//tf.setText("");
				File dir = new File(dirPath);
				if(dir.exists() && dir.isDirectory()){//如果目录存在且是文件夹,就列出内容
					ta.setText("");
					String[] names = dir.list();
					for(String name : names){//将内容输出到显示区
						ta.append(name+"\r\n");
					}
				}
				else{
					lb.setText("您所输入的目录找不到'"+(dir.toString())+"'.请确认路径是正确的,并重新输入");
					lb.setAlignment(Label.CENTER);
					dl.add(lb);
					dl.add(okbut);
					dl.setVisible(true);
				}
	}
	public void duqu(String s){
		File f = new File(s);
		for(String st : f.list())
		{
			ta.append(st);
			ta.append("\r\n");
		}
	}
	public static void main(String[] args){//主函数
		new test();
	}
}
运行效果如下:




菜单栏


MenuBar:横的主菜单
Menu:竖着的分菜单

MenuItem:竖菜单中的条目


------- android培训java培训、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值