Java多线程简单应用

Categories: Java; Tagged with: ; @ January 31st, 2009 23:40

需求: 并行处理任务

描述:

某email解析小程序, 点击parse之后会解析网页中或文件中的email地址.

image

如果文件较大或网速较慢, 响应会比较迟钝,出现假死现象, 因此在点击Parse时, 创建一个专门用于Parse的线程, 保证程序的流程运行.

具体解决方法:

1. 监听Parse Button:

buttonParse.addActionListener(onParse);

2.onParse函数

private ActionListener onParse = new ActionListener() {
		public void actionPerformed(ActionEvent e){
			Thread threadParseEmail = new Thread(){

				@Override
				public void run() {
					// TODO Auto-generated method stub
					parseEmail();
				}
			};
			threadParseEmail.setName("ParseEmailThread");
			threadParseEmail.start();
			
			log.debug("Parse clicked");

	};

3.parseEmail函数进行具体的处理.

private void parseEmail() {
		
		log.info("正在解析");
......
	}

log信息:

[AWT-EventQueue-0] DEBUG com.insprise.mail.parser.SwingUI – Parse clicked

[ParseEmailThread] INFO  com.insprise.mail.parser.SwingUI – 正在解析

可见ParseEmail使用单独的进行进行操作,  在解析大文件时 UI不会出现假死状态.

Eclipse 正则表达式书写测试插件 – 基于java.util.regex

Categories: Java; Tagged with: ; @ January 31st, 2009 23:31

Screenshot:

image

Download the plugin

Last version: Download

Update site: http://regex-util.sourceforge.net/update/

更多信息: http://myregexp.com/eclipsePlugin.html

Java读取远程文件

Categories: Java January 31st, 2009 23:27

需求: 读取远程文件

解决方案:

URL romatefile = new URL(textFilePath.getText());

获得InputStreamromatefile.openStream()

 

URL romatefile = new URL(textFilePath.getText());
ParseEmail pe = new ParseEmail();
textOutput.setText(pe.parseEmail(romatefile.openStream()));

在Java中将字符串复制到粘贴板 – Copy String to ClipBoard

Categories: Java; Tagged with: ; @ January 30th, 2009 23:35

需求:

将信息复制到粘贴板, 以供后续使用.

解决方法:

初始化一个粘贴板实例, 获得系统粘贴板, 将信息加入到粘贴板中.

实现方式:

	private Clipboard clipboard; //定义一个粘贴板实例;

			buttonCopyToClipBoard.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				clipboard = getToolkit().getSystemClipboard();	//获得系统粘贴板
				StringSelection textInfoSelected = new StringSelection(textInfo.getText());	//建立一个粘贴板内容实例.
				clipboard.setContents(textInfoSelected, null);	//将textInfoSelected加入到粘贴板中;
				labelInfo.setText("The output message has copied to clipboard.");
			}
			
		}//end of calss
		);

效果:

image

点击CopytoClipBoard按钮后, 将output信息复制到粘贴板, 并在Info中提示复制成功.

AWT中使用文件选择器 Use FileDialog in AWT

Categories: Java; Tagged with: ; @ January 30th, 2009 23:16

需求:  

在AWT中创建一个文件选择器 选择本机文件.

如图:

image

在点击Browse时, 会弹出文件选择框,

在选择之后将文件路径显示在该按钮前方的textFiled中.

解决方法:

监听Browse按钮事件, 在点击之后创建一个FileDialog, 选择文件.

		c.fill = GridBagConstraints.NONE;
		c.weightx = 0;
		c.anchor = GridBagConstraints.WEST;
		buttonBrowse.addActionListener(new ActionListener() { //监听Browse点击事件

			@Override
			public void actionPerformed(ActionEvent e) {
		        FileDialog fd = new FileDialog(gbl);
		        fd.setSize(400, 300);
		        fd.setVisible(true);
		        
		        filePath = fd.getDirectory() + fd.getFile();
		        System.out.println(filePath);
		        textFilePath.setText(filePath);
			}
			
		}//end of class
		);
		addComponent(buttonBrowse, 2, 0, 1, 1);
		

其中filePath为一个String, 代表文件的路径与名称.

效果:

image

可以看到TextFiled中的文件路径及名称.

PS: 检测文件是否存在

				java.io.File file = new java.io.File(filePath);
				
				if(file.isFile() && file.exists()) {
					System.out.println("文件存在");
					
				}else {
					textInfo.setText("您选择的文件不存在, 请重新选择");
					return;
				}

Newer Posts <-> Older Posts



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.