Hallo,
ich habe eine sicher ziemlich simple Frage.
Ich versuche mich zum wiederholten Mal an SWING, hänge aber bei einer grundlegenden Frage was den Programmablauf angeht. Mir fehlen auch irgendwie die Suchwörter bei Google dafür, also dachte ich mir, ich schildere das Problem hier kurz an einem Beispiel, hoffentlich weiß jemand Rat. Ich bin übrigens keinesfalls zu faul zum selber suchen, zum Beweis das angehängte Beispiel. (Wenn ich nicht schon ne Stunde gesucht hätte, würd ich mir die Mühe ja nicht machen..)
Also, nehmen wir an es gibt 4 Klassen in einem Paket:
DataClass enthält einen String als Klassenvariable:
WriterClass eine Funktion:
Das Fenster hat zwei Buttons und ein Label...
Das Hauptprogramm sieht so aus:
Jetzt die Frage:
Ich möchte das beim Klick auf den Button1 die Funktion der Writerklasse aufgerufen wird.
Beim Klick auf den zweiten Button soll das Label den Text der Variablen der Datenklasse erhalten.
Mehr ist es nicht.
Was ich nicht verstehe, wie "verbinde" ich die Klassen miteinander. Klar könnte ich im ButtonActionListener eine Instanz der Klasse WriterClass erzeugen, und dann einfach direkt die Funktion aufrufen, das erscheint mir aber unsauber. Ich möchte die Variablen möglichst alle in Main initialisieren, und durch das JFrame nur steuern.
Wie gesagt, ich steh bei dem Problem etwas auf der Leitung und wäre für jede Hilfe dankbar..
(Hab immerhin schon viel über die einzelnen Funktionen von Swing gelernt, nur das große ganze Bild fehlt mir noch)
Schöne Grüße,
Christian
ich habe eine sicher ziemlich simple Frage.
Ich versuche mich zum wiederholten Mal an SWING, hänge aber bei einer grundlegenden Frage was den Programmablauf angeht. Mir fehlen auch irgendwie die Suchwörter bei Google dafür, also dachte ich mir, ich schildere das Problem hier kurz an einem Beispiel, hoffentlich weiß jemand Rat. Ich bin übrigens keinesfalls zu faul zum selber suchen, zum Beweis das angehängte Beispiel. (Wenn ich nicht schon ne Stunde gesucht hätte, würd ich mir die Mühe ja nicht machen..)
Also, nehmen wir an es gibt 4 Klassen in einem Paket:
- DataClass
WriterClass
NewJFrame
Main
DataClass enthält einen String als Klassenvariable:
Code:
public class DataClass {
public String value = "Haus";
public DataClass() {
System.out.println("Data class created");
}
}
WriterClass eine Funktion:
Code:
public class WriterClass {
public WriterClass() {
}
public void writeMessage()
{
System.out.println("Hello World");
}
}
Das Fenster hat zwei Buttons und ein Label...
Das Hauptprogramm sieht so aus:
Code:
public Main() { }
public static void main(String[] args) {
DataClass dC = new DataClass();
WriterClass wC = new WriterClass();
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
NewJFrame mainWindow = new NewJFrame();
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWindow.pack();
mainWindow.setVisible(true);
}
});
}
Jetzt die Frage:
Ich möchte das beim Klick auf den Button1 die Funktion der Writerklasse aufgerufen wird.
Beim Klick auf den zweiten Button soll das Label den Text der Variablen der Datenklasse erhalten.
Mehr ist es nicht.
Was ich nicht verstehe, wie "verbinde" ich die Klassen miteinander. Klar könnte ich im ButtonActionListener eine Instanz der Klasse WriterClass erzeugen, und dann einfach direkt die Funktion aufrufen, das erscheint mir aber unsauber. Ich möchte die Variablen möglichst alle in Main initialisieren, und durch das JFrame nur steuern.
Wie gesagt, ich steh bei dem Problem etwas auf der Leitung und wäre für jede Hilfe dankbar..
(Hab immerhin schon viel über die einzelnen Funktionen von Swing gelernt, nur das große ganze Bild fehlt mir noch)
Schöne Grüße,
Christian