Zuerst wird eine MEthode ausgeführt wo ich einen String bekomme und diesen dann per setMethode auf einen anderen String setzte. Dieses Rufe ich später mit einer get Methode ab. Jedoch enthält der String nicht das was ich mit set gesetzt habe
Code:
//Klasse mit get und set Methode sowie die Methode wo ich den String herbekomme
class Datenuebergabe {
String telenummer = new String();
public void setnummer(String a) {
telenummer = a;
}
public String getnummer() {
return telenummer;
}
//Diese Methode wird zuerst ausgeführt
public void hierbekommeichnummer() {
//dies und das passiert bis plötzlich
String a = dumdidum;
setnummer(a);
}
//in einer anderen Klasse wo ich den String bekommen will
class blabla {
Datenuebergabe gabe = new Datenuebergabe();
JLabel label = new JLabel(gabe.getnummer());
}
machst du eine neues Objekt, also ist auch nicht der Wert drin, den du vorher in ein anderes geschrieben hast.
wenn du den String static machst, klappt es auf diese Weise. Dann bekommst du halt immer den gleichen String
wenn du 'von außen' auf deine beiden klasse zugreifst, geht das schon. ich weiss ja nicht, was du genau machen willst, aber nehmen wir mal an, du willst solange labels mit der gelesenen nummer erzeugen, wie noch neue nummern vorhanden sind, dann könntest du das in etwa so machen:
Code:
public class Test {
public static void main(String args[]) {
boolean neueNummervorhanden = true;
String labelNummer;
blabla b = new blabla();
while (neueNummervorhanden) {
b.gabe.hierbekommeichnummer(); // naechste Nummer holen
labelNummer = b.gabe.getnummer();
System.out.println(labelNummer); // zum Test
// bzw.
b.setLabel(labelNummer);
}
}
}
class Datenuebergabe {
private String telenummer = new String(); // private!
public void setnummer(String a) {
telenummer = a;
}
public String getnummer() {
return telenummer;
}
//Diese Methode wird zuerst ausgeführt
public void hierbekommeichnummer() {
//dies und das passiert bis plötzlich
// check ob weitere Nummer vorhanden..
// wenn nicht: neueNummervorhanden = false
String a = " aktuelle Nummer "; //Test
setnummer(a);
}
}
//in einer anderen Klasse wo ich den String bekommen will
class blabla {
Datenuebergabe gabe = new Datenuebergabe();
public void setLabel(String labelNummer) {
JLabel label = new JLabel("LabelNr. " + gabe.getnummer());
// add label ...
}
}
ich nehms zurück.. geht doch sieht aber schrecklich aus..schöner wärs vielleicht so:
Code:
// in main:
while (neueNummervorhanden) {
b.gabe.hierbekommeichnummer(); // naechste Nummer holen
b.setLabel();
}
//.. und in blabla:
public void setLabel() {
JLabel label = new JLabel("LabelNr. " + gabe.getnummer());
// add label ...