Hallo,
ich brauche etwas Hilfe dabei, die GUI aktualisiert anzuzeigen. Ich habe es schon über die Repaint Methode probiert. Leider wird die JList nicht aktualisiert angezeigt.
Hier mein Code:
Wie kann ich also eine JList aktualisieren? Ich habe versucht, die aktuelle JList zu überschreiben und anschließend zum JFrame hinzuzufügen. Anschließend will ich das Frame erneuern. Was ist der Fehler?
ich brauche etwas Hilfe dabei, die GUI aktualisiert anzuzeigen. Ich habe es schon über die Repaint Methode probiert. Leider wird die JList nicht aktualisiert angezeigt.
Hier mein Code:
Java:
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class GUI {
private JFrame frame;
private JList filelist, lstCopy;
private JButton btnCopy;
private Container container;
public GUI() throws IOException {
frame = new JFrame("Hallo");
FTP.connectToFTP("server", "user", "passwort");
String[] files = FTP.getFileList("");
container = frame.getContentPane();
container.setLayout(new FlowLayout());
frame.setSize(400, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
filelist = new JList(files);
filelist.setVisibleRowCount(10);
filelist.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
filelist.setFixedCellWidth(frame.getWidth() - 20);
container.add(new JScrollPane(filelist));
// Listener List Selector
ListSelectionModel listSelectionModel;
listSelectionModel = filelist.getSelectionModel();
listSelectionModel
.addListSelectionListener(new SharedListSelectionHandler());
}
public static void main(String args[]) throws IOException {
GUI test = new GUI();
test.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class SharedListSelectionHandler implements ListSelectionListener {
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
if (lsm.isSelectionEmpty()) {
System.out.println(" <none>");
} else {
// Find out which indexes are selected.
int minIndex = lsm.getMinSelectionIndex();
int maxIndex = lsm.getMaxSelectionIndex();
for (int i = minIndex; i <= maxIndex; i++) {
if (lsm.isSelectedIndex(i)) {
if (!e.getValueIsAdjusting()) {
try {
String selectedvalue = (String)filelist.getSelectedValue();
String[] newfiles = FTP.getFileList(selectedvalue);
for (String file : newfiles){
System.out.println(file);
}
filelist = new JList(newfiles);
frame.add(filelist);
frame.repaint();
System.out.println(selectedvalue);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
}
}
}
}
Zuletzt bearbeitet: