Come caricare una foto in un'applicazione desktop in Java

December 4

Come caricare una foto in un'applicazione desktop in Java


Java viene fornito con un set integrato di strumenti per la gestione delle connessioni di rete e sia i dati di lettura e scrittura a un server, a patto di utilizzare protocolli Internet standard, come HTTP e FTP. In pochi passaggi, è possibile creare un'applicazione veloce, con un'interfaccia utente grafica, che caricare immagini su un server FTP esistente.

istruzione

1 Aprite il vostro editor di testo preferito di ambiente di sviluppo Java e incollare il seguente in esso:

import java.awt.GridLayout;

import java.awt.Label;

import 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;

importare javax.swing. *;

public class UploadForm estende JFrame implementa ActionListener {

File image;

Server JTextField = new JTextField ( "");

JTextField username = new JTextField ( "");

JTextField imagePath = new JTextField ( "");

JButton imageBrowse = new JButton ( "Trova immagine");

JPasswordField password = new JPasswordField ( "");

JButton uploadButton = new JButton ( "Carica");

public void actionPerformed (ActionEvent ae) {

}

UploadForm pubblico () {

}

Main (string [] args) {public static void

}

}

Questo semplice importa classe scheletro tutte le classi che saranno necessarie dalle librerie standard di Java, definisce i tre metodi l'applicazione dovrà usare, e crea gli elementi dell'interfaccia utente necessari.

2 Incollare il seguente nel metodo "main":

JFrame f = new UploadForm();

f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

f.setVisible (true);

programmatori Java esperti riconosceranno questo come il metodo standard che fornisce l'ingresso nel programma dal sistema operativo. In questo caso, fa molto poco: crea la cornice che contiene l'interfaccia utente grafica, assicura che il programma si arresta quando l'utente chiude il telaio, e rende il telaio visibile all'utente.

3 Incollare il seguente nel costruttore "UploadForm" (il metodo "UploadForm ()"):

imageBrowse.addActionListener(this);

uploadButton.addActionListener (questo);

this.setSize (640.100);

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

this.add (imagePath);

this.add (imageBrowse);

this.add (nuova etichetta ( "Server"));

this.add (server);

this.add (nuova etichetta ( "Nome utente"));

this.add (nome utente);

this.add (nuova etichetta ( "Password"));

this.add (password);

this.add (uploadButton);

Questo imposta l'aspetto dell'interfaccia utente grafica utilizzando il gestore "GridLayout". In primo luogo, i due pulsanti dell'interfaccia utente viene detto di inviare gli eventi di azione per il metodo "actionPerformed" di questo programma. Quindi, il gestore GridLayout è configurato per disporre gli elementi dell'interfaccia utente in una griglia con due colonne e un numero illimitato di righe. E, infine, si aggiungono tutti gli elementi dell'interfaccia utente. L'ordine conta: il GridLayout inizia alla posizione di inizio più a sinistra della griglia e riempie l'intera riga prima di muoversi verso il basso alla riga successiva.

4 Incollare il seguente nel metodo "actionPerformed":

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

Archi;

JFileChooser JFC = new JFileChooser ();

jfc.showDialog (JFC, "Scegliere un file di immagine");

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

imagePath.setText (s);

} altro

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

provare {

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

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

URL url = new URL (urlString);

collegamento URLConnection = 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 ());

}

}

Questo metodo è un po 'complessa, perché il metodo actionPerformed deve fare due cose. Se il pulsante "imageBrowse" viene cliccato, deve presentare agli utenti una finestra di dialogo di selezione per consentire loro di selezionare un file immagine dal proprio disco rigido. E, d'altra parte, se il "uploadButton" viene cliccato, deve aprire il file selezionato con il browser immagine, aprire una connessione FTP ad un server (utilizzando la classe URLConnection), e scrivere i dati dal file al web server.

Consigli e avvertenze

  • Questo codice è funzionale, ma un sacco di controllo degli errori è lasciato fuori al fine di raggiungere il compito a portata di mano. i nomi dei file senza senso e nomi dei server cattivi non vengono controllati per.