Java Swing GUI文件拖拽
为了方便,有时我们需要直接将本地文件或字符或图片直接拖拽到图形上,让组件自动打开拖拽的文件。基于这种思想,我写了如下代码实现这个拖拽监听的功能。
1.UI源码
package ibees.desktop;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
/**
*
* @author zhang xiaojin
* 演示Swing文件拖拽
*/
public class DropDragDemo {
public static void main(String[] args){
JFrame frame = new JFrame("文件拖拽Demo");
frame.setSize(500, 400);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder("文件拖拽演示"));
JTextArea textArea = new DropDragSupportTextArea();
JScrollPane jsp = new JScrollPane();
jsp.setViewportView(textArea);
textArea.setColumns(40);
textArea.setRows(20);
panel.add(jsp);
frame.add(panel);
frame.setVisible(true);
}
}
这段源码的效果如下:里面的两个文件名是我拖拽进去的。
2.实现监听的类
package ibees.desktop;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.swing.JTextArea;
/**
*
* @author Administrator
*/
public class DropDragSupportTextArea extends JTextArea implements DropTargetListener{
private DropTarget dropTarget
相关文档:
import java.util.Properties;
public class ConfigReader {
private static Properties cache = new Properties();
static{
try {
cache.load(ConfigReader .class.getClassLoader().getResourceAsStream("config.properties"));
} catch (Exception e) {
&nbs ......
以下文字参考自http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javadoc.html
javadoc工具可以从以下4类“源文件”产生doc:
(1) java源文件(.java),生成对类和类的成员的doc
(2) package注释文件(package-info.java或者package.html),生成对包的说明
(3) overview文件(名可以随便,通常是o ......
package test;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String arg[]) {
String fileName = "E:\\share\\test.txt";
String writeData = "HelloWorld!\r\nnihao我的 ......
java.lang.string.split
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
stringObj
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多 ......
转IBM的文章,比较详细。需要注意的是,
通过JavaCompiler进行编译都是在当前目录下生成.class文件,而使用编译选项可以改变这个默认目录。编译选项是一个元素为String类型的Iterable集合。如我们可以使用如下代码在D盘根目录下生成.class文件。
Iterable options = Arrays.asList("-d", "d:\\");
JavaCompiler. ......