Programmieren - alles kontrollieren 4.936 Themen, 20.625 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! „Java Problem...objekte und JFrame+vererbung....“
Optionen

ich verstehe das problem zwar nicht ganz, aber heir ein paar tipps von mir zur vererbung und objektorintierung:

höchst illegal ist schon mal der zugriff auf die variable einer klasse - auch wenn diese als public deklariert ist.
in der klasse sollten zwei Methoden existieren "getString1()" und "setString1()" zum Setzen und Auslesen der
Variablen. Das hat nix mit Pingelei zu tun, sondern das findest du in jeder Anleitung zu Objektorientierung unter
"Kapselung".

mit den Ober und Unterklassen: so geht es garantiert (es sei den, ich habe das Problem missverstanden)

public abstract class OberKlasse{
private String1;
public void setString1(String was){
String1=was
}
public String getString1(){
return String1
}
}

public class KlasseEinerSprache extends OberKlasse{

}

im main Programm

KlasseEinerSprache test=new KlasseEinerSprache();
test.setString1("hallo");
System.out.println(test.getString());


hoffe, das war ne Hilfe
ka

bei Antwort benachrichtigen