![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 30.09.2008
Beiträge: 1
|
Hallo erstmal. Ich bin gerade dabei ein JavaApplet für einen Datei-Upload zu entwickeln, welches einen JFileChooser beinhaltet. Nachdem ich mehrere Tutorials gelesen habe (bin halt ein Anfänger Mein Problem ist jetzt, dass der JFileChooser Grafikfehler hat. Es scheint so als würde sich das Fenster, wo man die Dateien sieht nicht richtig aktualisieren. (Also wenn man einen anderen Ordner auswählt, werden trotzdem noch die Dateien aus dem vorigen Ordner angezeigt.) Mir ist auch aufgefallen, dass das Problem bei bestimmten Ordnern öfter als bei anderen kommt. Bei dem "Meine Bilder" Ordner (in Windows unter Eigene Dateien) ist es besonders schlimm. Vieleicht weil es eine Verknüpfung ist? Die Java-Konsole sagt dazu folgendes: Exception occurred during event dispatching: java.lang.NullPointerException at javax.swing.plaf.basic.BasicListUI.updateLayoutSta te(Unknown Source) at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayo utState(Unknown Source) at javax.swing.plaf.basic.BasicListUI.paintImpl(Unkno wn Source) at javax.swing.plaf.basic.BasicListUI.paint(Unknown Source) at javax.swing.plaf.ComponentUI.update(Unknown Source) at javax.swing.JComponent.paintComponent(Unknown Source) at javax.swing.JComponent.paint(Unknown Source) at javax.swing.JComponent.paintToOffscreen(Unknown Source) at javax.swing.BufferStrategyPaintManager.paint(Unkno wn Source) at javax.swing.RepaintManager.paint(Unknown Source) at javax.swing.JComponent._paintImmediately(Unknown Source) at javax.swing.JComponent.paintImmediately(Unknown Source) at javax.swing.RepaintManager.paintDirtyRegions(Unkno wn Source) at javax.swing.RepaintManager.paintDirtyRegions(Unkno wn Source) at javax.swing.RepaintManager.seqPaintDirtyRegions(Un known Source) at javax.swing.SystemEventQueueUtilities$ComponentWor kRequest.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source) at java.awt.Dialog$1.run(Unknown Source) at java.awt.Dialog$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Unknown Source) at javax.swing.JFileChooser.showDialog(Unknown Source) at javax.swing.JFileChooser.showOpenDialog(Unknown Source) at UploadApplet$1.actionPerformed(UploadApplet.java:5 3) at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source) at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Mein Code sieht so aus: Code: import java.io.*;
import java.net.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JApplet;
import javax.swing.JFileChooser;
import javax.swing.border.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.DefaultListModel;
public class UploadApplet extends JApplet {
private static final long serialVersionUID = 1L;
// init() wird beim laden des applets gestartet
public void init() {
resize(640, 480);
final DefaultListModel listModel;
listModel = new DefaultListModel();
final JList liste = new JList(listModel);
final JLabel statustext = new JLabel( "", JLabel.CENTER );
statustext.setFont( new Font("Serif", Font.PLAIN, 16) );
statustext.setBounds(122, 425, 320, 23);
JButton buttonupload = new JButton( "Dateien Uploaden" );
buttonupload.setBounds(448, 425, 160, 23);
JButton buttondateiminus = new JButton( "-" );
buttondateiminus.setBounds(32, 425, 41, 23);
JButton buttondateiplus = new JButton( "+" );
buttondateiplus.setBounds(74, 425, 41, 23);
JScrollPane scrollpane1 = new JScrollPane(liste);
scrollpane1.setBounds(32, 32, 576, 385);
scrollpane1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Liste hochzuladener Dateien:", TitledBorder.RIGHT, TitledBorder.TOP));
final Frame f = new Frame ();
Container content = getContentPane();
// content.setBackground(Color.LIGHT_GRAY);
content.setLayout( null );
listModel.addElement("- Keine Dateien gewählt -");
final File[] datei = null;
buttondateiplus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae)
{
statustext.setText("");
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
int option = chooser.showOpenDialog(UploadApplet.this);
if(option == JFileChooser.APPROVE_OPTION)
{
File[] sf = chooser.getSelectedFiles();
String filelist = "nothing";
if(sf.length>0)
filelist = sf[0].getName();
for(int i=1;i<sf.length;i++)
{
filelist += "," + sf[i].getName();
}
listModel.removeElement("- Keine Dateien gewählt -");
DefaultListModel listModel = (DefaultListModel)liste.getModel();
for(int i=0;i<sf.length;i++)
{
if(listModel.contains(sf[i])) {
}
else {
listModel.addElement(sf[i]);
}
}
}
else
{
System.out.println("Sie haben abgebrochen.");
//statustext.setText("Dateiauswahl abgebrochen");
}
}
});
buttondateiminus.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statustext.setText("");
int indexliste[] = liste.getSelectedIndices();
for (int i=indexliste.length-1; i>=0; i--) {
listModel.removeElementAt(indexliste[i]);
}
if (listModel.size()==0) {
listModel.addElement("- Keine Dateien gewählt -");
}
};}
);
buttonupload.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
statustext.setText("");
if (listModel.elementAt(0)!="- Keine Dateien gewählt -") {
for (int i=0; i < listModel.size(); i++) {
try{
String hostname = "javaupload";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket = new Socket(addr, port);
// Send header
String path = "/upload.php";
// File To Upload
File theFile = new File(listModel.elementAt(i).toString());
System.out.println(addr.getHostAddress());
System.out.println ("size: " + (int) theFile.length());
DataInputStream fis = new DataInputStream(new BufferedInputStream(new
FileInputStream(theFile)));
byte[] theData = new byte[(int) theFile.length( )];
fis.readFully(theData);
fis.close();
DataOutputStream raw = new
DataOutputStream(socket.getOutputStream());
Writer wr = new OutputStreamWriter(raw);
String command =
"--dill\r\n"
+ "Content-Disposition: form-data; name=\"uploadfile\"; filename=\""
+ theFile.getName() + "\"\r\n"
+ "Content-Type: text/xml\r\n"
+ "\r\n";
String trail = "\r\n--dill--\r\n";
String header =
"POST "+path+" HTTP/1.0\r\n"
+ "Accept: */*\r\n"
+ "Referer: http://localhost\r\n"
+ "Accept-Language: de\r\n"
+ "Content-Type: multipart/form-data; boundary=dill\r\n"
+ "User_Agent: TESTAGENT\r\n"
+ "Host: javaupload\r\n"
+ "Content-Length: " + ((int) theFile.length() + command.length() +
trail.length()) + "\r\n"
+ "Connection: Keep-Alive\r\n"
+ "Pragma: no-cache\r\n"
+ "\r\n";
wr.write(header);
wr.write(command);
wr.flush();
raw.write(theData);
raw.flush( );
wr.write("\r\n--dill--\r\n");
wr.flush( );
BufferedReader rd = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
raw.close();
socket.close();
statustext.setText("Dateien hochgeladen.");
} catch (Exception f) { System.out.println(f.toString()); }
}}
else {
//System.out.println("Sie wollten uploaden, obwohl sie keine Dateien gewählt haben");
statustext.setText("Fehler: Keine Dateien gewählt.");
}}
});
//Erzeugen des GUIs:
content.add(scrollpane1);
content.add(buttondateiplus);
content.add(buttonupload);
content.add(buttondateiminus);
content.add(statustext);
}
}
Vielen Dank schon mal im Vorraus!!! PS: SuFu hat mir nichts gebracht; wenn es das Thema schon gibt bitte ich um einen kleinen Hinweis und vielmals um Entschuldigung |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| applet , java , jfilechooser , nullpointerexception |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Java Applet soll Daten an ein PHP Script senden | flanger | Allgemeine Java-Programmierung | 5 | 16.05.2007 16:52 |
| applet wird nicht angezeigt | function | Desktop-Applikationen und Grafik | 4 | 31.10.2005 12:48 |
| Policy Datei für Applet konfigurieren | bobcho | Desktop-Applikationen und Grafik | 14 | 28.06.2005 21:59 |
| Applet korrekt einbinden | bicpi | Allgemeine Java-Programmierung | 1 | 15.01.2005 06:13 |
| 2 Applet miteinander kommunizieren | mr.no | Allgemeine Java-Programmierung | 3 | 23.11.2004 20:47 |