Ⅰ 急求一個簡單的java 界面程序 實現一個選擇本地電腦文件的功能
importjava.io.*;
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
{
JFrameframe=newJFrame("文件選擇器實例");
JTabbedPanetabPane=newJTabbedPane();//選項卡布局
Containercon=newContainer();//布局1
Containercon1=newContainer();//布局2
JLabellabel1=newJLabel("選擇目錄");
JLabellabel2=newJLabel("選擇文件");
JTextFieldtext1=newJTextField();
JTextFieldtext2=newJTextField();
JButtonbutton1=newJButton("...");
JButtonbutton2=newJButton("...");
JFileChooserjfc=newJFileChooser();//文件選擇器
YFileChooser(){
jfc.setCurrentDirectory(newFile("d:\"));//文件選擇器的初始目錄定為d盤
//下面兩行是取得屏幕的高度和寬度
doublelx=Toolkit.getDefaultToolkit().getScreenSize().getWidth();
doublely=Toolkit.getDefaultToolkit().getScreenSize().getHeight();
frame.setLocation(newPoint((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);//使能關閉窗口,結束程序
}
publicvoidactionPerformed(ActionEvente){//事件處理
if(e.getSource().equals(button1)){//判斷觸發方法的按鈕是哪個
jfc.setFileSelectionMode(1);//設定只能選擇到文件夾
intstate=jfc.showOpenDialog(null);//此句是打開文件選擇器界面的觸發語句
if(state==1){
return;//撤銷則返回
}
else{
Filef=jfc.getSelectedFile();//f為選擇到的目錄
text1.setText(f.getAbsolutePath());
}
}
if(e.getSource().equals(button2)){
jfc.setFileSelectionMode(0);//設定只能選擇到文件
intstate=jfc.showOpenDialog(null);//此句是打開文件選擇器界面的觸發語句
if(state==1){
return;//撤銷則返回
}
else{
Filef=jfc.getSelectedFile();//f為選擇到的文件
text2.setText(f.getAbsolutePath());
}
}
}
publicstaticvoidmain(String[]args){
newYFileChooser();
}
}
不用謝~請叫我雷鋒
Ⅱ Java (文件選擇器) 保存文件
JFileChooser fd=new JFileChooser();
fd.showSaveDialog(null);
File f=fd.getSelectedFile();
System.out.println(f.getName());
疑惑解答:
1. JFileChooser.getSelectedFile()返回一個文件對象,調這個文件對象的getName()很容易得到用專戶輸入的文件名。返迴文件對象既屬包含了文件路徑也包含了文件名,這也體現了Java面向對象的思想。
2. Java的文件對象在文件系統中是可以存在,也可不存在的,所以Java的文件對象有exists()、
createNewFile()、mkdir()等方法。所以文件保存對話框返回的文件對象不一定在文件系統實際存在,而僅僅是一串路徑的表示。
Ⅲ 文件夾選擇器怎麼實現
Android中文件選擇器的實現
今天給大家分享下文件選擇器的作用 , 具體就是獲取用戶在在SD卡選中的文件/文件夾路徑 ,類似於C#中
OpenFileDialog控制項(對C#的一站式開發還是念念不忘)。功能實現起來比較簡單,主要是幫助大家節省開發時間。
網上流傳較廣的一個成品如下 <[Android實例] 文件選擇器>, 本文也是根據上面的成品修改而成,使其更易
理解,效率更高。 除此之外,主要特色有:
1、我們監聽了用戶按下Back鍵的事件,使其返回上一層目錄;
2、針對不同的文件類型(文件vs文件夾 , 目標文件vs其他文件)做了特殊處理。
知識點一、 File 類的使用
文件選擇器的主要功能是:瀏覽文件\文件夾、文件類型等;都是通過Java File類來實現的。
關於File類的使用,請參考如下博客:
<<來自java文檔 File類>>
<<Java File類>>
知識點二、調用方法說明
使用了startActivityForResult()發起調用以及onActivityResult()方法接受回調後的信息。
其他的也沒什麼好說了,大家看看代碼注釋吧~~ so easy - - 。
FileChooserActivity.java 實現文件選擇的類 。
[java] view plainprint?
public class CopyOfFileChooserActivity extends Activity {
private String mSdcardRootPath ; //sdcard 根路徑
private String mLastFilePath ; //當前顯示的路徑
private ArrayList<FileInfo> mFileLists ;
private FileChooserAdapter mAdatper ;
//配置適配器
private void setGridViewAdapter(String filePath) {
updateFileItems(filePath);
mAdatper = new FileChooserAdapter(this , mFileLists);
mGridView.setAdapter(mAdatper);
}
//根據路徑更新數據,並且通知Adatper數據改變
private void updateFileItems(String filePath) {
mLastFilePath = filePath ;
mTvPath.setText(mLastFilePath);
if(mFileLists == null)
mFileLists = new ArrayList<FileInfo>() ;
if(!mFileLists.isEmpty())
mFileLists.clear() ;
File[] files = folderScan(filePath);
if(files == null)
return ;
for (int i = 0; i < files.length; i++) {
if(files[i].isHidden()) // 不顯示隱藏文件
continue ;
String fileAbsolutePath = files[i].getAbsolutePath() ;
String fileName = files[i].getName();
boolean isDirectory = false ;
if (files[i].isDirectory()){
isDirectory = true ;
}
FileInfo fileInfo = new FileInfo(fileAbsolutePath , fileName , isDirectory) ;
//添加至列表
mFileLists.add(fileInfo);
}
//When first enter , the object of mAdatper don't initialized
if(mAdatper != null)
mAdatper.notifyDataSetChanged(); //重新刷新
}
//獲得當前路徑的所有文件
private File[] folderScan(String path) {
File file = new File(path);
File[] files = file.listFiles();
return files;
}
private AdapterView.OnItemClickListener mItemClickListener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position,
long id) {
FileInfo fileInfo = (FileInfo)(((FileChooserAdapter)adapterView.getAdapter()).getItem(position));
if(fileInfo.isDirectory()) //點擊項為文件夾, 顯示該文件夾下所有文件
updateFileItems(fileInfo.getFilePath()) ;
else if(fileInfo.isPPTFile()){ //是ppt文件 , 則將該路徑通知給調用者
Intent intent = new Intent();
intent.putExtra(EXTRA_FILE_CHOOSER, fileInfo.getFilePath());
setResult(RESULT_OK , intent);
finish();
}
else { //其他文件.....
toast(getText(R.string.open_file_error_format));
}
}
};
public boolean onKeyDown(int keyCode , KeyEvent event){
if(event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode()
== KeyEvent.KEYCODE_BACK){
backProcess();
return true ;
}
return super.onKeyDown(keyCode, event);
}
//返回上一層目錄的操作
public void backProcess(){
//判斷當前路徑是不是sdcard路徑 , 如果不是,則返回到上一層。
if (!mLastFilePath.equals(mSdcardRootPath)) {
File thisFile = new File(mLastFilePath);
String parentFilePath = thisFile.getParent();
updateFileItems(parentFilePath);
}
else { //是sdcard路徑 ,直接結束
setResult(RESULT_CANCELED);
finish();
}
}
}
界面依舊很醜陋,囧 ,大家可以根據需要在此基礎上添加功能 。
Ⅳ java文件選擇器問題
只需要使用JFileChooser的setFileSelectionMode方法設置一下即可
myfilechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
這樣就只能選擇文件夾了
setFileSelectionMode
public void setFileSelectionMode(int mode)設置 JFileChooser,以允許用戶只選擇文件、只選擇目錄,或者可選擇文件和目錄。默認值是 JFilesChooser.FILES_ONLY。
參數:
mode - 要顯示的文件類型:
JFileChooser.FILES_ONLY
JFileChooser.DIRECTORIES_ONLY
JFileChooser.FILES_AND_DIRECTORIES
拋出:
IllegalArgumentException - 如果 mode 是非法的文件選擇模式
另:JAR文件的圖標無法更改
Ⅳ Java里的文件選擇器是干什麼用得
Java里的文件選擇器是方便用戶在硬碟上選擇文件的,這里有個程序你可以看一下,就知道文件選擇器怎麼用了。
import java.awt.*;
import javax.swing.*;
import javax.swing.colorchooser.ColorSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.io.*;
import java.awt.event.*;
public class Test11 extends JFrame{
//添加一個顏色對話框窗口
JFrame color=new JFrame();
JDialog color_diglog=new JDialog(color,"顏色",true);
Container contentpane=this.getContentPane();
JTextArea text=new JTextArea();//文本域
JFileChooser filechooser=new JFileChooser();//文件選擇器
JColorChooser colorchooser=new JColorChooser();//顏色選擇器
ColorSelectionModel model=colorchooser.getSelectionModel();//用以獲取顏色模型
//創建菜單欄
JMenuBar menubar=new JMenuBar();
JMenu F_menu=new JMenu("文件(F)"),
C_menu=new JMenu("顏色(C)");
JMenuItem FC=new JMenuItem("打開(文件選擇器)"),
CC=new JMenuItem("顏色(顏色選擇器)");
public Test11(){
super("簡單文本編輯器");//調用父類(JFrame)的構造方法
contentpane.setLayout(new BorderLayout());
text.setLineWrap(true);
F_menu.add(FC);
C_menu.add(CC);
menubar.add(F_menu);
menubar.add(C_menu);
contentpane.add(menubar,"North");
contentpane.add(text);
color_diglog.add(colorchooser);
color_diglog.setSize(300, 400);
fileshow();//事件監聽器類
}
public void fileshow(){
//文件查看器
FC.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int result=filechooser.showOpenDialog(null);
File file=filechooser.getSelectedFile();
if(file!=null&&result==JFileChooser.APPROVE_OPTION){
try {//將讀出的文件賦給text,text用read方法讀出
FileReader fr=new FileReader(file.getPath());
text.read(fr,null);
fr.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
});
//顏色查看器
CC.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
color_diglog.setLocationRelativeTo(Test11.this);//在color_dialog中顯示顏色選擇器
model.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
text.setBackground(colorchooser.getColor());//將文本域的背景色改變為獲取的顏色
}
});
color_diglog.setVisible(true);
}
});
}
public static void main(String[] args) {
JFrame f=new Test11();
f.setBounds(300,300,300,300);
f.setVisible(true);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e){
System.exit(0);
}
});
}
}
Ⅵ java 中怎麼通過文件選擇器選擇要保存文件的的目錄,然後返回絕對路徑
如果用的是JFileChooser的話可以用getCurrentDirectory().getPath();方法得到你選擇的文件夾路徑。
Ⅶ java調用windows自帶的文件(夾)選擇器
但java不能直接call dll呀。一定要寫一個jni去調用windows的文件選擇器,再用java去調用jni。。很麻煩,所以建議不要啦,需要java的是難看了點。
Ⅷ Java如何做出好看的本地文件選擇器
更改一下外觀為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外觀。如果要好看,可以設置一下顯示外觀。