Guten Morgen Forum,
als Neuling habe ich ein Problem, bei dem Ihr mir hoffentlich weiterhelfen könnt.
Ich baue gerade mein erstes Programm, welches eine Auswahl mehrerer Verzeichnisse bietet, beim Klick auf einen Button wird die Verzeichnisliste in eine jList geladen (nur JPGS) und beim Klick auf eine Datei wird das Bild angezeigt. Das klappt wunderbar!
Böse wird es, wenn ich die Auswahl ändere - der Inhalt der jList also ausgetauscht wird. Dann wird der ListSelectionListener ein zweites mal initialisiert und das führt zum Fehler. Wie kann ich abfragen, ob jList schon einen Listener hat, bzw. kann ich den alten Listener entfernen und nach Laden der Liste einen neuen Listener starten?
Hm, das ist gerade wohl etwas verwirrend
Hier mal der Code, der ausgeführt wird, wenn man ein Verzeichnis auswählt. Evtl. hilft das ja weiter
Es wäre klasse, wenn mir da jemand auf die Sprünge helfen könnte.
Ach ja, die Fehlermeldung bei 'Fehler Ausstieg:' sagt: 'index == null'. :bahnhof:
Gruß,
Chriz
als Neuling habe ich ein Problem, bei dem Ihr mir hoffentlich weiterhelfen könnt.
Ich baue gerade mein erstes Programm, welches eine Auswahl mehrerer Verzeichnisse bietet, beim Klick auf einen Button wird die Verzeichnisliste in eine jList geladen (nur JPGS) und beim Klick auf eine Datei wird das Bild angezeigt. Das klappt wunderbar!
Böse wird es, wenn ich die Auswahl ändere - der Inhalt der jList also ausgetauscht wird. Dann wird der ListSelectionListener ein zweites mal initialisiert und das führt zum Fehler. Wie kann ich abfragen, ob jList schon einen Listener hat, bzw. kann ich den alten Listener entfernen und nach Laden der Liste einen neuen Listener starten?
Hm, das ist gerade wohl etwas verwirrend
Hier mal der Code, der ausgeführt wird, wenn man ein Verzeichnis auswählt. Evtl. hilft das ja weiter
Java:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
/* das ist die Verzeichnisauswahl */
final String itemText = (String)jComboBox1.getSelectedItem();
jTextField1.setText(itemText);
FTPConnect connect = new FTPConnect();
try{
fileList.clearSelection();
String[] fList = connect.getFiles(itemText.toLowerCase());
fileList.setListData(fList);
fileList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
if(evt.getValueIsAdjusting() ){ return; }
picLabel.setIcon(null);
String picName = fileList.getSelectedValue().toString();
String pName = picName.substring(2);
try{
FTPClient ftpConn = new FTPClient();
ftpConn.connect("server");
ftpConn.login(itemText, "kennwort");
InputStream getPic = ftpConn.retrieveFileStream(pName);
ImageIcon icon = new ImageIcon( ImageIO.read(getPic), "meinBild");
int iWidth = icon.getIconWidth();
int iHeight = icon.getIconHeight();
int nHeight = (iHeight * 400)/iWidth;
icon.setImage(icon.getImage().getScaledInstance(400,nHeight,Image.SCALE_DEFAULT));
picLabel.setIcon(icon);
ftpConn.disconnect();
}catch (Exception e){
JOptionPane.showMessageDialog(mainPanel, "Fehler Ausstieg: "+e.getMessage());
System.exit(0);
}finally{
}
}
});
}catch(Exception e){
}
}
Es wäre klasse, wenn mir da jemand auf die Sprünge helfen könnte.
Ach ja, die Fehlermeldung bei 'Fehler Ausstieg:' sagt: 'index == null'. :bahnhof:
Gruß,
Chriz