PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JAVA] 2 Fragen - JList Inhalt ändern und Fenster invisible setzen


Yoda-III
2005-01-09, 16:51:58
Hallo,

zur 1. Frage:
ich habe eine JList , die am Anfang ihre Werte aus dem stringarray data erhält.

jetzt möchte ich den Inahlt der Jlist aber gern ändern. Die Werte des Arrays zu ändern ist glaub ich nicht das Problem, nur weiß ich nicht, wie ich die Jlist dazu bringe die Werte aus data neu einzulesen.

public static int i=3;
public static String data[] = new String[i];
.
.
.
liste = new JList(data);
c.add(liste);


Oder gibt es eine andere Methode die Werte der Jlist zu ändern.

zur 2. Frage:

mein erstes Fenster wird in der main methode aufgerufen

public static void main(String[] x) throws Exception {

cgui fenster = new cgui();
fenster.setTitle("Messenger v0.1");
fenster.setSize(500,100);
fenster.setVisible(true);

nachdem in diesem Fenster ein Button gedrückt wird, öffnet sich das nächste Fenster, und das erste würde ich gerne wieder invisible setzen. Nur weiß ich nicht wirklich wie.Mit

Client.fenster.setVisible(false);

kommt, dass er nicht auf die Variable zugreifen kann :(

Gruß und Danke schonmal, Yoda

HellHorse
2005-01-09, 18:50:37
Hallo,

zur 1. Frage:
ich habe eine JList , die am Anfang ihre Werte aus dem stringarray data erhält.

jetzt möchte ich den Inahlt der Jlist aber gern ändern. Die Werte des Arrays zu ändern ist glaub ich nicht das Problem, nur weiß ich nicht, wie ich die Jlist dazu bringe die Werte aus data neu einzulesen.

Oder gibt es eine andere Methode die Werte der Jlist zu ändern.
Was du willst ist ein ListModel. Falls du von AbstractListModel erbst stehen dir u.A diese beiden netten Methoden zur Verfügung.
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/AbstractListModel.html#fireContentsChanged(java.lang.Object,%20int,%20int)
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/AbstractListModel.html#fireIntervalAdded(java.lang.Object,%20int,%20int)



Client.fenster.setVisible(false);

kommt, dass er nicht auf die Variable zugreifen kann :(

Sehe ich das richtig, wenn du das machst, kompiliert es nicht? Dann muss du deinen Code ändern. Leider hilft der gepostete Code nicht weiter.

Senior Sanchez
2005-01-09, 18:51:12
zu Frage1:

Rufe einfach auf JList ne get-methode auf, die dir ein String-OBJEKT zurückgibt (genauer gesagt eine referenz): nun kannste auf diesem objekt die werte ändern und in der JList wird alles richtig sein.

zu Frage2:

das ist logisch, dass das nicht geht, da dein Aufruf statischer Natur ist, du aber direkt nen bestimmtes Fenster, Objekt, hast, das geschlossen werden soll. Also modifiziere den ActionListener des Buttons so, das er das fenster öffnet und gleichzeitig rufst du auf:

setVisible(false);

damit wird das fenster invisible.


mfg Senior Sanchez

Yoda-III
2005-01-09, 22:58:12
zu Frage2:

das ist logisch, dass das nicht geht, da dein Aufruf statischer Natur ist, du aber direkt nen bestimmtes Fenster, Objekt, hast, das geschlossen werden soll. Also modifiziere den ActionListener des Buttons so, das er das fenster öffnet und gleichzeitig rufst du auf:

setVisible(false);

damit wird das fenster invisible.


mfg Senior Sanchez

sorry wenns ne blöde frage ist, aber wie öffne ich das fenster ohne ein neues zu erzeugen ? Steh jetz glaub ich ein bissl aufn Schlauch.

Frage 1 hab ich glaube ich hingekriegt, muss jetzt nur noch meinen vorgegebenen String in die entsprechenden Substrings zerlegen, und das Array für die Jlist damit füllen

Gruß Yoda

Senior Sanchez
2005-01-09, 23:04:56
sorry wenns ne blöde frage ist, aber wie öffne ich das fenster ohne ein neues zu erzeugen ? Steh jetz glaub ich ein bissl aufn Schlauch.

Frage 1 hab ich glaube ich hingekriegt, muss jetzt nur noch meinen vorgegebenen String in die entsprechenden Substrings zerlegen, und das Array für die Jlist damit füllen

Gruß Yoda


du hast doch gesagt, auf button-click öffnet sich nen anderes fenster, also wo ist da das prob?!? das fenster öffneste, und das wo, sich der button drin befindet wird einfach auf setVisible(false) gesetzt. Wo ist das prob?


Zu Frage 1: java.util.StringTokenizer könnte dein Freund sein, sind glaube nen paar praktische methoden dabei.


mfg Senior Sanchez

Yoda-III
2005-01-10, 17:39:09
Zu Frage 1: java.util.StringTokenizer könnte dein Freund sein, sind glaube nen paar praktische methoden dabei.



Der ist ja echt gut. Thx für den Tipp :)