Programmieren - alles kontrollieren 4.938 Themen, 20.667 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! (Anonym) „hi,danke dir erstmal,daß du geschrieben hast.ich hatte fast nicht erwartet eine...“
Optionen

hallo,

?? Da kann es eigentlich weiter kein Problem geben.
Nehmen wir ein Bsp:
Du hast ein Fenster, das "Abbrechen"-Button soll seine Beschriftung aus deiner Sprachklasse holen,
-> also "Cancel" oder "Abbrechen" je nachdem ob Deutsch oder Englisch.

Benutzer entscheidet sich im ersten Fenster für Deutsch:
OberKlasse test= new KlasseDeutsch();

dann Übergabe dieser Referenz im Konstruktor deines Hauptfensters.
im Konstr. des Hauptfensters weißt du diese Referenz einer private-Variable (vom Typ OberKlasse) des Hauptfensters zu,
nennen wir diese referenz "sprache"

dann bekommst du beim Zugriff auf "sprache.getString1()", was meinetwegen die Beschriftung für das Button
ist, "Abbrechen" zurückgeliefert.

schreib, falls ich mich irren sollte

wenn du später noch mal Konkret wissen willst, was für eine Sprache gerade verwendet wird, deklariere in
OberKlasse folgendes:

public abstract String getSprache();

damit sind die Sprachklassen verpflichtet, diese zu implementieren:

public String getSprache(){
return "Deutsch"
}

auf gutes gelingen, ka

bei Antwort benachrichtigen