2017-05-30 4 views
0

Ich arbeite ein Nebenprojekt, bei dem der Benutzer eine Datei eingibt. Ich weiß, es gibt die Möglichkeit für sie, eine Zeichenfolge einzugeben, die den Namen der Textdatei darstellt und dann vom Computer suchen zu lassen, aber das würde bedeuten, dass die Datei an einem bestimmten Ort auf dem Computer sein muss oder der Benutzer den gesamten Pfad eingeben muss zu der Datei.Einen Benutzer suchen und eine Datei in Java eingeben

Gibt es eine ähnliche Dateieingabemarkierung in HTML5, die ein Fenster anzeigt, in dem der Benutzer den Laptop nach der Datei durchsuchen kann? Ich habe ein Bild von dem, was ich meine, auf einem Mac aufgefordert werden.

enter image description here

+0

es FileChooser genannt: https://docs.oracle.com/javase/tutorial/uiswing/components/ filechooser.html –

+0

Oder ein [FileDialog] (http://docs.oracle.com/javase/8/docs/api/java/awt/FileDialog.html) – khelwood

Antwort

0

Verwenden file chooser von 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

Verwandte Themen