Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Java Problem...objekte und JFrame+vererbung....

Matthias! / 7 Antworten / Flachansicht Nickles

ich bin echt ratlos.mein problem sieht folgendermaßen aus:

ich habe ein programm,daß in drei Ssprachen laufen soll.

anfangs baut sich ein abfrageframe auf,bei dem man die sprache wählen soll.danach kommt der hauptframe,daß eigentliche programm.

ich habe alle namen,überschriften,etc in jeweils einer klasse pro sprache,die von einer oberklasse erbt.

der erste frame benutzt drei buttons.in der ActionPerformed Methode möchte ich einen konstruktor von der entsprechenden sprachklasse haben und dieses objekt dann als parameter an den hauptframe übergeben,damit dann dort aus dem objekt die strings genommen werden.
das sieht im programm ungefähr so aus:

aufruf:
unterklasse_deutsch u = new unterklasse_deutsch();
new Frame(u);

hauptprogramm:

import....
....
public Frame extends JFrame .......

public Frame(Oberklasse_fuer_sprache sprache) {
....
...
nun will ich die strings so auslesen:

sprache.string1
sprache.string2
.....
das problem ist,daß nicht aus der erbendenklasse "gelesen" wird,sondern immer aus der oberklasse.
in der oberklasse sind alle strings deklariert,aber nicht initialisiert.trozdem wird dies akzeptiert und im prinzip ein leerer string genommen.an der stelle im programm steht dann nichts,das entsprechende menu/button/etc.ist aber vorhanden und benutzbar.

bitte sehnsüchtig um anregung und tips&triks.falls ich das problem zu undeutlich/etc. dargestellt haben sollte fragt einfach nach.ich kann nur leider nicht das ganze programm posten,weil das "etwas" viel wäre...

gruß matthias :-)

bei Antwort benachrichtigen
(Anonym) Matthias! „hey,also es funktioniert jetzt fast,ich bekomme allerdings nun beim aufruf des...“
Optionen

eine gleichnamige methode wie die variable?
wenn du das so gemacht hast, bekommst du einen stackoverflow:

private String test="hallo";

public String test(){
return test();
}

du rufst dann unendlich die methode test auf - der compiler gibt keinen fehler, da du ja offenbar eine methode
aufrufst, die einen string zurückgibt - bloß das ist eine endlosrekursion bzw. -schleife

richtig muss die methode so aussehen
public String test(){
return test;
}

es ist "unschön", variablenname gleich methodennamen zu setzen

mfg ka

bei Antwort benachrichtigen