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中将字符串复制到粘贴板 – 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;
				}

使用ArrayList代理进行Map的排序

Categories: Java; Tagged with: ; @ January 28th, 2009 18:18

某Map中散乱的存放着如下信息:

abce.com (1), cde.com (1), abc.com (3), def.com (1), abd.com (2), sfaf.com (1), bcd.com (2)

为了进行排寻 使用ArrayList的sort进行排序.

通过new ArrayList(collection) 将Map中的Value引用到新建立的ArrayList中,

		//--以下为排序
		ArrayList alDomains = new ArrayList();
		alDomains = new ArrayList(domains.values());
		System.out.println(alDomains);
		Collections.sort(alDomains, null);
		System.out.println(alDomains);

打印:

[abce.com (1), cde.com (1), abc.com (3), def.com (1), abd.com (2), sfaf.com (1), bcd.com (2)] – 排序前

[abc.com (3), abce.com (1), abd.com (2), bcd.com (2), cde.com (1), def.com (1), sfaf.com (1)] – 排序后

HashSet – 覆盖equals, hashCode

Categories: Java; Tagged with: ; @ January 28th, 2009 17:57

覆盖equlas 和hashCode两函数, 获得更自由的控制.

某set, 存一些Email, 如下:
[email protected] 
[email protected]
[email protected]
[email protected]
[email protected]

很明显, 一共3个不同邮箱,

现在创建了Email类, 需要将这帮Email放入一个HashSet中, 当然,

[email protected]
[email protected]
[email protected]
[email protected]
这几个是一模一样的, 都是[email protected]

因此需要重写Email的equlas 和hashCode两个函数, 以便保证Set的唯一性.

代码:

	//重写equals
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		
		final Email email = (Email)obj;
		
		if(this.pB.equals(email.pB) && this.pA.equalsIgnoreCase(email.pA)) {
			return true;
		}else {
			return false;
		}
	}
	
	//重写hashCode
	public int hashCode() {
		int result;
		result = pB.hashCode() + pA.toLowerCase().hashCode();
		return result;
	}

在Email外部将这开始提到的这帮email建立为Email类, 并加入到某Set中,

注意: 为了保证HashSet正常工作, 要求当两个对象用equals()方法比较结果为True时, 起hashCode也必须相同, 因此覆盖了equals之后 必须覆盖hashCode.

结果是该Set的size为3 – 达到要求….

Newer Posts <-> Older Posts



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