import java.awt.*
import javax.swing.*
import java.awt.event.*
public class YFileChooser implements ActionListener{
JFrame frame=new JFrame("文件选择器实例")
JTabbedPane tabPane=new JTabbedPane()//选项卡布局
Container con=new Container()//布局1
Container con1=new Container()//布局2
JLabel label1=new JLabel("选择目录")
JLabel label2=new JLabel("选择文件")
JTextField text1=new JTextField()
JTextField text2=new JTextField()
JButton button1=new JButton("...")
JButton button2=new JButton("...")
JFileChooser jfc=new JFileChooser()//文件选择器
YFileChooser(){
jfc.setCurrentDirectory(new File("d:\\"))//文件选择器的初始目录定为d盘
//下面两行是取得屏幕的高度和宽度
double lx=Toolkit.getDefaultToolkit().getScreenSize().getWidth()
double ly=Toolkit.getDefaultToolkit().getScreenSize().getHeight()
frame.setLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150))//设定窗口出现位置
frame.setSize(300,150)//设定窗口大小
frame.setContentPane(tabPane)//设置布局
//下面设定标签等的出现位置和高宽
label1.setBounds(10,10,70,20)
label2.setBounds(10,30,100,20)
text1.setBounds(80,10,120,20)
text2.setBounds(80,30,120,20)
button1.setBounds(210,10,50,20)
button2.setBounds(210,30,50,20)
button1.addActionListener(this)//添加事件处理
button2.addActionListener(this)//添加事件处理
con.add(label1)
con.add(label2)
con.add(text1)
con.add(text2)
con.add(button1)
con.add(button2)
con.add(jfc)
tabPane.add("目录/文件选择",con)//添加布局1
tabPane.add("暂无内容",con1)//添加布局2
frame.setVisible(true)//窗口可见
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)//使能关闭窗口,结束程序
}
public void actionPerformed(ActionEvent e){//事件处理
if(e.getSource().equals(button1)){//判断触发方法的按钮是哪个
jfc.setFileSelectionMode(1)//设定只能选择到文件夹
int state=jfc.showOpenDialog(null)//此句是打开文件选择器界面的触发语句
if(state==1){
return//撤销则返回
}
else{
File f=jfc.getSelectedFile()//f为选择到的目录
text1.setText(f.getAbsolutePath())
}
}
if(e.getSource().equals(button2)){
jfc.setFileSelectionMode(0)//设定只能选择到文件
int state=jfc.showOpenDialog(null)//此句是打开文件选择器界面的触发语句
if(state==1){
return//撤销则返回
}
else{
File f=jfc.getSelectedFile()//f为选择到的文件
text2.setText(f.getAbsolutePath())
}
}
}
public static void main(String[] args) {
new YFileChooser()
}
}
不用谢~请叫我雷锋
更改一下外观为windows的:if(UIManager.getLookAndFeel().isSupportedLookAndFeel()){
final String platform = UIManager.getSystemLookAndFeelClassName()
// If the current Look &Feel does not match the platform Look &Feel,
// change it so it does.
if (!UIManager.getLookAndFeel().getName().equals(platform)) {
try {
UIManager.setLookAndFeel(platform)
} catch (Exception exception) {
exception.printStackTrace()
}
}
}
如果不需要文件过滤可以选择 FileDialog来打开文件,这个是调用 *** 作系统的文件筐打开文件的,但是在window下实现不了文件过滤,其他系统下可以。如果用JFileChoose可以很容易实现,文件过滤,但是界面默认是java外观。如果要好看,可以设置一下显示外观。
java d出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0
File file = null
String path = null
JFileChooser fileChooser = new JFileChooser()
FileSystemView fsv = FileSystemView.getFileSystemView() //注意了,这里重要的一句
System.out.println(fsv.getHomeDirectory()) //得到桌面路径
fileChooser.setCurrentDirectory(fsv.getHomeDirectory())
fileChooser.setDialogTitle("请选择要上传的文件...")
fileChooser.setApproveButtonText("确定")
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY)
result = fileChooser.showOpenDialog(chatFrame)
if (JFileChooser.APPROVE_OPTION == result) {
path=fileChooser.getSelectedFile().getPath()
System.out.println("path: "+path)
}
这是另外一种方法得到桌面路径:
File desktop = new File(System.getProperty("user.home")+System.getProperty("file.separator")+"XX")
filechooser.setCurrentDirectory(desktop)
我的文档 路径: fsv.getDefaultDirectory())
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name *** 作系统的名称
os.arch *** 作系统的架构
os.version *** 作系统的版本
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)