Gui problem

Hi,
ich hab eine Anwendung (myApplication), die eine GUI-Klasse erzeugt und auf Komponenten in dieser GUI-Klasse zugreifen. Die GUI-Klasse enthält einige TabbedPanes. Pane2 enthält eine JTextArea logPane, in die ich im Lauf der Anwendung Meldungen schreiben will. Ich habe mal die wesentlich Code-Elemente unten angefügt. Beim Versuch zu kompilieren stört sich der Kompiler an der Zeile
ui.panel2.append(…) in der Haupt-Applikation.

Meldung:

myApplication.java:55: cannot resolve symbol
symbol: method appendToLog (java.lang.String)
location: class java.awt.Component
panel2.appendToLog(text);

Kann mir jemand erklären woran das liegt? Ich bräuchte schnelle Hilfe.

Danke,
Christian

----------------------
myApplication.java
----------------------
public class myApplication
{
 public myApplication()
 {
 ...
 GUI ui = new GUI();
 ui.panel2.append("blablabla....);
 }
}


--------------------
GUI.java
--------------------
public class GUI extends JFrame
{
 public Component panel1, panel2;
 private JTabbedPane tabbedPane;

 public GUI()
 {
 panel1 = new TabbedPane1();
 tabbedPane.addTab(..., panel1, ...);
 panel2 = new TabbedPane2();
 tabbedPane.addTab(..., panel2, ...);
 ...
 }

 class TabbedPane1 extend JPanel
 {
 ...
 }

 class TabbedPane2 extend JPanel
 {
 private JTextArea logPane;

 public TabbedPane2()
 {
 logPane = new JTextArea();
 ...
 }

 public void appendToLog(String text)
 {
 logPane.append(text);
 }

 ...
 }
} 

natürlich muss es so heissen. das ist aber nicht das problem:

----------------------
myApplication.java
----------------------
public class myApplication
{
 public myApplication()
 {
 ...
 GUI ui = new GUI();
 ui.panel2.appendToLog("blablabla....);
 }
}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Christian,

ich denke mal dein Problem ist, das panel2 ein Objekt der Klasse Component ist und diese Klasse keine Methode „appendToLog…“ kennt.
Wenn du in der Klasse GUI das panel2 vom Typ TabbedPane2 machst, sollte es funktionieren.

Also
public TabbedPane1 panel1;
public TabbedPane2 panel2;

Anstatt von
public Component panel1, panel2;

hth
Gruß
Jochen


myApplication.java

public class myApplication
{
public myApplication()
{

GUI ui = new GUI();
ui.panel2.append("blablabla…);
}
}


GUI.java

public class GUI extends JFrame
{
public Component panel1, panel2;
private JTabbedPane tabbedPane;

public GUI()
{
panel1 = new TabbedPane1();
tabbedPane.addTab(…, panel1, …);
panel2 = new TabbedPane2();
tabbedPane.addTab(…, panel2, …);

}

class TabbedPane1 extend JPanel
{

}

class TabbedPane2 extend JPanel
{
private JTextArea logPane;

public TabbedPane2()
{
logPane = new JTextArea();

}

public void appendToLog(String text)
{
logPane.append(text);
}


}
}

Danke!
Danke