String aus einer Klasse in die andere !

Status
Nicht offen für weitere Antworten.

HTML

Bekanntes Mitglied
Also ich hab folgendes Problem:

Ich habe ein JFrame in dem ich ein JPanel erzeuge.
So, der ganze wichtige code steht dann in dem JPanel , z.B. dass ich ein zweites JFrame aufmache.

Ich hätte jetzt gerne dass des zweite JFrame den gleichen Title hat wie des erste.
Also hab ichs ausprobiert mit:
Code:
String title= getTitle();
frame2.setTitle(title);

Dann bin ich draufgekommen dass des nicht funktioniert weil er getTitle() nur im JFrame kennt. Also hab ich die Zeile in das JFrame reingeschrieben. Dann hab ich also in der Klasse mit dem JFrame den String title, um ihn aber dem neuen JFrame als Title zu geben bräuchte ich den String im JPanel-Teil wo des zweite Frame ja erzeugt wird...

Also kann man irgendwie den String verwenden obwohl er in einer anderen Klasse steht??

danke schon mal
 
ja ok, aber kann mir des vllt jemand genauer erklären, weil ich fang grad erst an und mir sagt des jetzt nicht wirklich viel. Am besten mit Code Beispiel oder so 🙂

also trotzdem danke
 
Hi

Code:
class MainFrame extends JFrame
{
    public MainFrame()
    {
        super("Mein Titel");
        MeinPanelDasDenSubFrameAufmacht panel = 
            new MeinPanelDasDenSubFrameAufmacht(getTitle()); // Titel für den SubFrame übergeben
        ....
    }
}

class MeinPanelDasDenSubFrameAufmacht extends JPanel
{
    public MeinPanelDasDenSubFrameAufmacht(String titelFürDenSubFrame)
    {
        JFrame subFrame = new JFrame(titelFürDenSubFrame);
        ....
    }
}

Ob es so sinnvoll ist, dass ein Panel einen Frame aufmacht, weiß ich grad nicht, aber .... ohne den Zusammenhang zu kennen, nehme ich das einfach mal so hin...

bye
 
aber wenn man es so macht, ist das Ergebnis dass das Subframe(neues wort gelernt 🙂 ) den Titel "Mein Titel" hat.
Ich will aber dass er den Titel hat den man durch getTitle() erhält.
und wenn ich es so mach:
Code:
public MainFrame()
    {
        super(getTitle()); 
...

bekomm ich ne fehlermeldung :
cannot reference title before supertype constructor has been called

!?!
 
erst das super-Objekt erstellen, dann werden die MainFrame-Objekt-'Dinge' initialisiert,
daher sind Operationen von MainFrame vorher nicht verfügbar, sie könnten mit einem undefinieren Objektzustand arbeiten,

geht nicht
super();
super.setTitle(getTitle());
?

macht aber keinen Sinn,
JFrame.getTitle() liefert doch "" oder null wenn er vorher nicht anders gesetzt wird,

außerdem wolltest du ein zweites JFrame erzeugen und das auch noch irgendwo anders,
nicht gerade im Konstruktor des JFrames,

insofern unverständliche Entwicklung, beschreibe noch mal was das ganze soll..
 
Hi

Sorry - ich kapier's jetzt grad nicht: In dem JPanel wird ein neuer Frame aufgemacht. Der Titel dieses Frames ist der Titel, den man vom MainFrame mit "getTitle()" erhält. Schließlich ist das ja genau das, was übergeben wird:
Code:
    public MainFrame()
    {
        super("Mein Titel");
        MeinPanelDasDenSubFrameAufmacht panel =
            new MeinPanelDasDenSubFrameAufmacht([b]getTitle()[/b]); // Titel für den SubFrame übergeben
In diesem Fall ist das natürlich "Mein Titel", weil, wenn man den MainFrame mit diesem Titel erstellt, danach "getTitle()" eben "Mein Titel" zurückgibt....

Kannst du die Frage nochmal für Dummies erklären? Vielleicht mit einem Pseudocode-Schnipsel, wo du genau sagst: "Hier soll DIES und DAS passieren" ?

bye
 
mein problem ist, dass ich den Titel vom MainFrame schon weiter vorne anders gesetzt hab. deshalb will ich ihn nicht durch
Code:
super("Mein Titel")

in 'Mein Titel' ändern sondern einfach nur den schon gesetzten Titel rausfinden ( getTitle() ) und übergeben.

Wenn ich des super() einfach weglasse, funktionierts natürlich auch nicht...

wie auch immer ich lass es jetz einfach weg, da es wohl einfach zu kompliziert ist und so wichtig ist der Titel ja jetz auch wieder nicht ...

danke für die antworten
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben