文档章节

GUI 图形化用户界面 监听机制

cuncaojin
 cuncaojin
发布于 2015/01/30 20:23
字数 384
阅读 18
收藏 0
//疑问:很奇怪,我的D盘下的输入(d:)和(d:\)效果竟然不一样,其他盘的一样
package day22;

import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
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.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

public class MyWindowDemo {
	private Frame frame = null;
	private Button btn = null;
	private TextField tf = null;
	private TextArea ta = null;

	private Dialog dl = null;
	private Button dlBtn = null;
	private Label label = null;

	public static void main(String[] args) {
		new MyWindowDemo();
	}

	MyWindowDemo() {
		init();
	}

	public void init() {
		frame = new Frame("我的小窗");

		// 设置的是什么?
		// tf.setSize(400,20);

		// 设置列数20 列数70
		ta = new TextArea(20, 70);
		tf = new TextField(60);
		btn = new Button("转到");

		frame.setLayout(new FlowLayout());

		frame.setBounds(200, 100, 600, 400);
		btn.setSize(50, 20);

		frame.add(tf);
		frame.add(btn);
		frame.add(ta);

		myEvent();

		frame.setVisible(true);// 此句必须在最后
	}

	private void myEvent() {
		btn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getFileNames();
				/*
				 * File dir = new File(dirPath); if(dir.exites() &&
				 * dir.isDirectory()){ ta.setText(""); String[] names =
				 * dir.list(); for(String name:names){ //需要改成\r \n \r\n都可以换行
				 * ta.append(name+"\r\n"); } }
				 */
			}
		});

		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		tf.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.out.println(e);
				getFileNames();
			}
		});
	}

	private void myDialogEvent() {
		if (dlBtn != null)
			dlBtn.addKeyListener(new KeyAdapter() {
				public void keyPressed(KeyEvent e) {
					if (e.getKeyCode() == KeyEvent.VK_ENTER)
						dl.setVisible(false);
				}
			});

		if (dl != null)
			dl.addWindowListener(new WindowAdapter() {
				public void windowClosing(WindowEvent e) {
					dl.setVisible(false);
				}
			});
	}

	private void getFileNames() {
		ta.setText("");
		String text = tf.getText();
		// ta.setText(text);
		File dir = new File(text);

		if (dir.isDirectory() && dir.exists()) {
			String[] fileNames = dir.list();
			for (String fileName : fileNames) {
				ta.append(fileName + "\r\n");
			}
		} else if (dir.isFile() && dir.exists()) {
			ta.setText(tf.getText());
			tf.setText("");
		} else if (!dir.exists()) {
			dl = new Dialog(frame, "文件提示对话框", true);
			dlBtn = new Button("okButton");
			label = new Label("找不到: " + text + " 。请确认地Internet或地址正确!!");
			// 注意:必须放到前面 dl.setVisible(true)前
			myDialogEvent();
			dl.setLayout(new FlowLayout());
			dl.add(label);
			dl.add(dlBtn);
			dl.setBounds(300, 400, 500, 200);
			dl.setVisible(true);
		}
	}
}


本文转载自:czbk

cuncaojin
粉丝 1
博文 45
码字总数 2950
作品 0
郑州
私信 提问
JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52719838 JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创...

Aduroidpc
2016/10/02
0
0
前端设计图转代码,西安交大表示复杂界面也能一步步搞定

选自 arXiv,作者:Zhihao Zhu等,机器之心编译。 卷积神经网络在图像处理上无与伦比,它可以从图像抽取到非常精炼的高级语义特征,这些信息不论是做分类还是做定位都没问题。但如果我们利用...

2018/11/06
0
0
Git for windows 发布2.8.0版本

导读 Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Wind...

linuxprobe
2016/04/07
1
0
Qt 5.10 发布,新增功能和特性

Qt 5.10 发布,Qt 是一个跨平台的 C++ 图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发 GUI 程序,也可用于开发非 GUI 程序。Qt 是完全面向对象的,很容...

周其
2017/12/09
5.4K
8
ActionListener的三种实现方法

Swing是目前Java中不可缺少的窗口工具组,是用户建立图形化用户界面(GUI)程序的 强大工具。Java Swing组件自动产生各种事件来响应用户行为。如当用户点击按钮或选择菜单项目时,Swing组件会...

Zenith-Lee
2014/02/28
31.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之5分钟解决单点登陆(53)

SpringBoot2.X心法总纲 1、pom文件依赖 <dependency> <groupId>com.majiaxueyuan</groupId> <artifactId>sso-core</artifactId> <version>1.2.2</version></dependency> 2、......

木九天
8分钟前
3
0
面向对象和面向过程的区别

面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对...

无名氏的程序员
9分钟前
4
0
OpenStack大事记

2010年7月19日,Rackspace、NASA、Citrix、Dell共同开发并发布OpenStack第一个版本。 2011年10月,Rackspace放弃OpenStack控制权,交由OpenStack藕色 2012年5月NASA宣布退出OpenStack的开发。...

大别阿郎
9分钟前
1
0
面向对象的简单应用—以交通工具(Vehicle)为列

请定义一个交通工具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,方法:移动(move())、设置速度(setSpeed(int speed))、加速 speedUp()、减速 speedDown()等。最后在测试类 Ve...

INEVITABLE
20分钟前
3
0
通往艺术家之路

通往艺术家之路 并发编程中,开发者往往需要权衡锁的颗粒粗细,锁住的代码块太大呢会导致可能的线程堵塞,锁的颗粒太细呢又会因为频繁地加锁解锁导致系统用户态内核态的转换从而消费很多时间...

StupidZhe
21分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部