2017-05-30 32 views
0

一個文件,我的工作,涉及到輸入文件的用戶方項目。我知道有讓他們輸入一個字符串代表文本文件的名稱,然後讓計算機搜索,但將意味着該文件必須在某個位置的計算機上或用戶必須輸入整個路徑選擇到文件。有一個用戶搜索和輸入的Java

有什麼相似的文件中輸入HTML5標籤,提示一個窗口,允許用戶通過他們的筆記本電腦搜索文件?我附上了我的意思是在Mac上提示的圖片。

enter image description here

+0

這就是所謂的文件選擇:https://docs.oracle.com/javase/tutorial/uiswing/components/ FileChooser.html的 –

+0

或者一個[FileDialog的](http://docs.oracle.com/javase/8/docs/api/java/awt/FileDialog.html ) – khelwood

回答

0

使用file chooser通過swing

import java.awt.BorderLayout; 
import java.awt.Container; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFileChooser; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

public class FileChooserTest extends JFrame { 
    private JTextField filename = new JTextField(), dir = new JTextField(); 

    private JButton open = new JButton("Open"), save = new JButton("Save"); 

    public FileChooserTest() { 
    JPanel p = new JPanel(); 
    open.addActionListener(new OpenL()); 
    p.add(open); 
    save.addActionListener(new SaveL()); 
    p.add(save); 
    Container cp = getContentPane(); 
    cp.add(p, BorderLayout.SOUTH); 
    dir.setEditable(false); 
    filename.setEditable(false); 
    p = new JPanel(); 
    p.setLayout(new GridLayout(2, 1)); 
    p.add(filename); 
    p.add(dir); 
    cp.add(p, BorderLayout.NORTH); 
    } 

    class OpenL implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     JFileChooser c = new JFileChooser(); 
     // Demonstrate "Open" dialog: 
     int rVal = c.showOpenDialog(FileChooserTest.this); 
     if (rVal == JFileChooser.APPROVE_OPTION) { 
     filename.setText(c.getSelectedFile().getName()); 
     dir.setText(c.getCurrentDirectory().toString()); 
     } 
     if (rVal == JFileChooser.CANCEL_OPTION) { 
     filename.setText("You pressed cancel"); 
     dir.setText(""); 
     } 
    } 
    } 

    class SaveL implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     JFileChooser c = new JFileChooser(); 
     // Demonstrate "Save" dialog: 
     int rVal = c.showSaveDialog(FileChooserTest.this); 
     if (rVal == JFileChooser.APPROVE_OPTION) { 
     filename.setText(c.getSelectedFile().getName()); 
     dir.setText(c.getCurrentDirectory().toString()); 
     } 
     if (rVal == JFileChooser.CANCEL_OPTION) { 
     filename.setText("You pressed cancel"); 
     dir.setText(""); 
     } 
    } 
    } 

    public static void main(String[] args) { 
    run(new FileChooserTest(), 250, 110); 
    } 

    public static void run(JFrame frame, int width, int height) { 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(width, height); 
    frame.setVisible(true); 
    } 
} ///:~ 

File dialog