Screenshot:
Last version: Download
Update site: http://regex-util.sourceforge.net/update/
更多信息: http://myregexp.com/eclipsePlugin.html
将信息复制到粘贴板, 以供后续使用.
初始化一个粘贴板实例, 获得系统粘贴板, 将信息加入到粘贴板中.
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 );
点击CopytoClipBoard按钮后, 将output信息复制到粘贴板, 并在Info中提示复制成功.
如图:
在点击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, 代表文件的路径与名称.
可以看到TextFiled中的文件路径及名称.
java.io.File file = new java.io.File(filePath); if(file.isFile() && file.exists()) { System.out.println("文件存在"); }else { textInfo.setText("您选择的文件不存在, 请重新选择"); return; }
某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中,
//--以下为排序 ArrayListalDomains = 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)] – 排序后
覆盖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 – 达到要求….
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.