ItemEvent事件

原创 2013年12月05日 14:11:46

现在直接贴上代码

E7.java

package liqi;

public class E7 {
	public static void main(String args[]) {
		WindowItemEvent win = new WindowItemEvent();
		win.setBounds(100, 100, 460, 360);
		win.setTitle("处理ItemEvent事件");
	}
}

WindowItemEvent.java

package liqi;

import java.awt.*;
import javax.swing.*;
import java.io.*;

public class WindowItemEvent extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	JComboBox choice;
	JTextArea textShow;
	PoliceListen listener;

	public WindowItemEvent() {
		init();
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	void init() {
		setLayout(new FlowLayout());
		choice = new JComboBox();
		choice.addItem("请选择文件:");
		File dir = new File("C:\\Users\\Administrator\\workspace\\win\\src\\liqi");
		FileAccept fileAccept = new FileAccept();
		fileAccept.setExtendName("java");
		String[] fileName = dir.list(fileAccept);
		for (String name : fileName) {
			choice.addItem(name);
		}
		textShow = new JTextArea(10, 30);
		listener = new PoliceListen();
		listener.setJComboBox(choice);
		listener.setJTextArea(textShow);
		choice.addItemListener(listener); // choice是事件源,listener是监视器
		add(choice);
		add(new JScrollPane(textShow));
	}

	class FileAccept implements FilenameFilter { // 内部类
		private String extendName;

		public void setExtendName(String s) {
			extendName = "." + s;
		}

		public boolean accept(File dir, String name) {
			return name.endsWith(extendName);
		}
	}
}

PoliceListen.java

package liqi;

import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class PoliceListen implements ItemListener {
	JComboBox choice;
	JTextArea textShow;

	public void setJComboBox(JComboBox box) {
		choice = box;
	}

	public void setJTextArea(JTextArea area) {
		textShow = area;
	}

	public void itemStateChanged(ItemEvent e) {
		textShow.setText(null);
		try {
			String fileName = choice.getSelectedItem().toString();
			fileName = "C:\\Users\\Administrator\\workspace\\win\\src\\liqi\\"+fileName;
			File file = new File(fileName);
			FileReader inOne = new FileReader(file);
			BufferedReader inTwo = new BufferedReader(inOne);
			String s = null;
			while ((s = inTwo.readLine()) != null) {
				textShow.append(s + "\n");
			}
			inOne.close();
			inTwo.close();
		} catch (Exception ee) {
			textShow.append(ee.toString());
		}
	}
}

练习这个程序的时候,遇到几个问题

1.Item显示不了想要显示的当前文件,我只好用绝对地址

2.有了文件名,我发现打开文件失败,无奈,我又叫上绝对地址,实验,发现自己路径格式写错了

3.好不容易才解决格式问题,好了,终于可以显示文件的内容了,算是成功了

4.File dir = new File("src/liqi/");将上述路径可以改成这个,也是可以的,这应该叫相对路径,好了就这样结束了


这段程序里面,要积累的知识

1.java的io操作

2.java界面操作

基础就不用说了,我总结两种字符串连接方法,1.使用“+”符号,这个简单 2.使用concat()连接两个字符串

相关文章推荐

Java捕获选项事件ItemEvent

package com.han; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ItemE...

input输入框和textarea文本框的value改变事件

如果写过检测input或者textarea输入框文本检测的人一定知道onchange或者jq的change方法检测文本变化是检测不到的,因为该事件是在文本框获得焦点,并且改变其中的内容之后再失去焦点才...

微信小程序事件

  • 2017年04月18日 20:49
  • 3KB
  • 下载

LABVIEW 事件结构的学习

  • 2016年04月17日 08:20
  • 17KB
  • 下载

使用js控制表单重复提交(1加锁,2事件方式,3 EasyUI中解决表单重复提交)

方法一、var flag = true; $(function() { $("#interested").click(function() { beInterested(); }); }); ...

Anroid touch事件分发探究

  • 2016年03月13日 21:27
  • 1.41MB
  • 下载

SQL利用扩展事件进行调优和

  • 2016年02月26日 15:53
  • 1.15MB
  • 下载

EventSystem的事件触发和pointer类执行顺序

上一篇写了Event Trigger的触发事件方法。这篇写EventSystems的触发事件方法。这两个方法都可以用来触发3D和2D事件。 方法非常简单,只要将下列代码绑定到物体上就可以触发事件了。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ItemEvent事件
举报原因:
原因补充:

(最多只允许输入30个字)