Hallo Liebe Community,
mein Problem ist das meine die JList leer ist, obwohl in meiner DefaultListModel die Daten gesetzt sind.
Ich bin jetzt echt überfragt hab mit toArray() probiert funktioniert nicht und jetzt DefaultListModel aber das hilft auch nicht
könnt ihr mir helfen? Wenn ja würde ich mich sehr freuen hier der Quellcode der JHandler Klasse.
Und Falls es Hilft die Frame Klasse JListe:
Danke schonmal im vorraus
mein Problem ist das meine die JList leer ist, obwohl in meiner DefaultListModel die Daten gesetzt sind.
Ich bin jetzt echt überfragt hab mit toArray() probiert funktioniert nicht und jetzt DefaultListModel aber das hilft auch nicht
könnt ihr mir helfen? Wenn ja würde ich mich sehr freuen hier der Quellcode der JHandler Klasse.
Java:
JListe jlist;
JMenuItem open;
JMenuItem exit;
JMenuItem about;
int cday = 0;
int ctime = 0;
int cdata = 0;
public List<String> ldays = new ArrayList<String>();
public List<String> ltime = new ArrayList<String>();
public List<String> ldata = new ArrayList<String>();
public JHandler(JListe jlist) {
super();
this.jlist = jlist;
register();
}
private void register() {
// TODO Auto-generated method stub
open = jlist.open;
exit = jlist.exit;
about = jlist.about;
jlist.addWindowListener(this);
open.addActionListener(this);
exit.addActionListener(this);
about.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object source = e.getSource();
if (source == open) {
openFile();
DefaultListModel<String> model = new DefaultListModel<String>();
for (String s : ldays) {
model.addElement(s);
}
JList list = new JList(model); //<--- Hier ist die liste dann leer obwohl model gefüllt ist
System.out.print(model);
jlist.add(list, BorderLayout.CENTER);
jlist.repaint();
}
if (source == about) {
showMessage("Converter - BETA v0.1");
}
if (source == exit) {
System.exit(0);
}
}
public void openFile() {
//File Chooser
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
File file = fc.getSelectedFile();
if (file == null) {
JOptionPane.showMessageDialog(new JFrame(),
"Bitte wählen Sie eine Datei aus", "FEHLER!!!",
JOptionPane.ERROR_MESSAGE);
} else {
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;
try {
fis = new FileInputStream(file);
// BufferedInputStream ist für das schnelle einlesen zuständig.
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
String zeile = null;
while ((zeile = dis.readLine()) != null) {
//Überprüfung der Datei nach den Schlagwörtern
days(zeile);
}
System.out.println("Fertig add");
fis.close();
bis.close();
dis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void days(String zeile) {
// TODO Auto-generated method stub
if (zeile.contains("Sonntag")) {
zeile = "Sonntag";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Montag")) {
zeile = "Montag";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Dienstag")) {
zeile = "Dienstag";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Mittwoch")) {
zeile = "Mittwoch";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Donnerstag")) {
zeile = "Donnerstag";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Freitag")) {
zeile = "Freitag";
ldays.add(zeile);
cday++;
} else if (zeile.contains("Samstag")) {
zeile = "Samstag";
ldays.add(zeile);
cday++;
}
}
// ///////////////////////////////
// Window - Event
// ///////////////////////////////
@Override
public void windowClosing(WindowEvent e) {
int erg = JOptionPane.showConfirmDialog(new JFrame(),
"Wollen Sie das Programm beenden?", "Exit",
JOptionPane.YES_NO_OPTION);
if (erg == JOptionPane.YES_OPTION)
System.exit(0);
}
// //////////////////////////////
// Helper
// /////////////////////////////
public void showMessage(String txt) {
JOptionPane.showMessageDialog(new JFrame(), txt, "Über",
JOptionPane.INFORMATION_MESSAGE);
}
Und Falls es Hilft die Frame Klasse JListe:
Java:
JMenu file = new JMenu("Datei");
JMenuItem open = new JMenuItem("Öffnen");
JMenuItem exit = new JMenuItem("Exit");
JMenu help = new JMenu("Hilfe");
JMenuItem about = new JMenuItem("About");
public JListe() {
setTitle("PlaySCR.dat - Converter");
setLayout(new BorderLayout());
setSize(600, 400);
createMenu();
centerFrame();
new JHandler(this);
}
private void createMenu() {
JMenuBar mb = new JMenuBar();
mb.add(file);
file.addSeparator();
file.add(open);
file.addSeparator();
file.add(exit);
mb.add(help);
help.add(about);
setJMenuBar(mb);
}
private void centerFrame() {
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frame = this.getSize();
this.setLocation((screen.width - frame.width) / 2,
(screen.height - frame.height) / 2);
}
public static void main(String[] args) {
new JListe().setVisible(true);
}
Danke schonmal im vorraus
Zuletzt bearbeitet: