So laden Sie ein Bild in eine Desktop-Anwendung in Java

June 10

Java verfügt über einen integrierten Satz von Tools für die Behandlung von Netzwerkverbindungen und sowohl lesen und Schreiben von Daten auf einem Server, vorausgesetzt, Sie verwenden standard-Internetprotokolle wie HTTP und FTP. In wenigen Schritten erstellen Sie eine schnelle Anwendung mit einer grafischen Benutzeroberfläche, die Bilder auf einem vorhandenen ftpserver geladen wird.

Anweisungen

1 Öffnen Sie einen Texteditor, der Java-Entwicklungsumgebung und fügen Sie Folgendes hinein:

Import java.awt.GridLayout;

Import java.awt.Label;

Importieren Sie java.awt.event.ActionEvent;

Import java.awt.event.ActionListener;

Import java.io.BufferedOutputStream;

Import java.io.File;

Import java.io.FileInputStream;

Import java.net.URL;

Import java.net.URLConnection;

Import javax.swing.*;

öffentliche Klasse, die UploadForm JFrame erweitert implementiert ActionListener {}

File image;

JTextField server = new JTextField("");

JTextField username = new JTextField("");

JTextField imagePath = new JTextField("");

JButton imageBrowse = new JButton("Find Image");

JPasswordField password = new JPasswordField("");

JButton uploadButton = new JButton("Upload");

public void actionPerformed(ActionEvent ae) {

}

public UploadForm() {

}

public static void main(String[] args) {

}

}

Diese einfache Klasse Skelett importiert alle Klassen, die von den Standardbibliotheken von Java benötigt werden, definiert die drei Methoden die Anwendung verwenden, die und erstellt den benötigten Benutzer Elemente der Benutzeroberfläche.

2 Fügen Sie Folgendes in der Methode "main":

JFrame f = new UploadForm();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

Erfahrene Java-Programmierer erkennt dies als die Standardmethode, die Eingang in das Programm vom Betriebssystem bereitstellt. In diesem Fall tut es sehr wenig: sie schafft den Rahmen, die die grafische Benutzeroberfläche hält, sorgt dafür, dass das Programm beendet wird, wenn der Benutzer den Rahmen schließt und den Rahmen für den Benutzer sichtbar macht.

3 Fügen Sie Folgendes in den "UploadForm"-Konstruktor ("UploadForm()" Methode):

imageBrowse.addActionListener(this);

uploadButton.addActionListener(this);

this.setSize(640,100);

this.setLayout(new GridLayout(0,2));

this.add(imagePath);

this.add(imageBrowse);

this.add(new Label("Server"));

this.add(server);

this.add(new Label("Username"));

this.add(username);

this.add(new Label("Password"));

this.add(password);

this.add(uploadButton);

Dies richtet das Aussehen der grafischen Benutzeroberfläche, die mit dem "GridLayout" Manager. Zunächst, sind die beiden Tasten auf der Benutzeroberfläche des Programms "actionPerformed()" Methode Aktionsereignisse zukommen mitgeteilt. Dann ist der GridLayout-Manager konfiguriert, ordnen Sie die Elemente der Benutzeroberfläche in einem Raster mit zwei Spalten und einer unbegrenzten Anzahl von Zeilen. Und schließlich werden alle Elemente der Benutzeroberfläche hinzugefügt. Die Reihenfolge ankommt: das GridLayout beginnt an der Position der oberen linken Gitter und füllt die gesamte Zeile vor dem Verschieben nach unten in die nächste Zeile.

4 Fügen Sie Folgendes in die "actionPerformed()"-Methode:

if (ae.getSource().equals(imageBrowse)) {

String s;

JFileChooser jfc = new JFileChooser();

jfc.showDialog(jfc, "Choose an image file");

s = jfc.getSelectedFile().getAbsolutePath();

imagePath.setText(s);

} else

if (ae.getSource().equals(uploadButton)) {

try {

File f = new File(imagePath.getText());

String urlString = "ftp://" + username.getText() + ":" + password.getText() + "@" + server.getText() + "/" + f.getName();

URL url = new URL(urlString);

URLConnection connection = url.openConnection();

connection.setDoOutput(true);

BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream());

FileInputStream in = new FileInputStream(f);

byte[] buffer = new byte[1024];

int i = 0;

while ((i = in.read(buffer)) >= 0) {

out.write(buffer, 0, i);

}

out.close();

in.close();

}catch (Exception e) {

System.out.println(e.getMessage());

}

}

Diese Methode ist etwas aufwändig, da die actionPerformed() Methode hat zwei Dinge zu tun. Wenn die "ImageBrowse"-Schaltfläche geklickt wird, muss es ein Dateiauswahldialog um eine Bilddatei von ihrer Festplatte auswählen können Benutzern präsentieren. Und andererseits, wenn die "UploadButton" geklickt wird, es muss öffnen Sie die Datei mit dem Bild-Browser ausgewählt, öffnen Sie eine FTP-Verbindung zu einem Server (unter Verwendung der Klasse URLConnection) und schreiben Sie die Daten aus der Datei auf dem Webserver.

Tipps & Warnungen

  • Dieser Code ist funktionsfähig, aber viele Fehlerüberprüfung wird ausgelassen, um die Aufgabe zu erhalten. Unsinnigen Dateinamen und schlechte Servernamen werden nicht geprüft.