Forum
Tipps
News
Menu-Icon

Aktionen aus einem Fenster am anderen

Aloa Leutz! Ich hab mal wieder eine Frage:
Ich habe ein Fenster in dem ein Button ist. Dieser Button soll die Hintergrundfarbe in einem anderen Fenster verändern! Hier ist mein Quelltext bisher, falls interessiert:

import java.awt.*;
import java.awt.event.*;

public class Test extends Frame {
  // Anfang Variablen
  // Ende Variablen

  public Test(final String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setSize(300, 300);
    setLayout(new BorderLayout());

    // Anfang Komponenten
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren
 
  public void setzeBackground ( Color color ) {
    setBackground(color);
  }
  // Ende Ereignisprozeduren

  public static void main(final String[] args) {
    new Test("Test");
    window Window = new window();
    Window.ini();
  }
}

class window extends Frame implements ActionListener {
  Button press = new Button();
  public void ini (  ) {
    // Window ini start

    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) {
        evt.getWindow().dispose();
        evt.getWindow().setVisible(false);
      }
    });
    setBackground(Color.lightGray);
    setSize(200, 400);
    setVisible(true);
    // Window ini end
   
    press.addActionListener(this);
  }
 
  public void actionPerformed ( ActionEvent evt )  {
    Color color = new Color(123, 123, 123);
    Test.setzeBackground(color);             <---- geht net (non-static method setzeBackground(...) cannot be                                                                               referenced from a static context)
  }
}


Antworten zu Aktionen aus einem Fenster am anderen:

Gleich mal vorne weg.
Du programmierst noch nicht sehr lang oder?

1. Das Haupt - Problem
   Du kannst nicht auf Test einfach so zugreifen zugreifen, du musst dem 2. Frame sein Elternobjekt irgendwie mitteilen.

 

  public static void main(final String[] args) {
    window Window = new window();
    Window.ini(new Test("Test"));
  }
 

   private Test parent;
  public void ini (Test testframe) {
    parent = testframe;
    // Window ini start
 

      public void actionPerformed ( ActionEvent evt )  {
    Color color = new Color(123, 123, 123);
    parent.setzeBackground(color);
  }
 

2. Der Button wird nicht generiert
Button press = new Button("Klicken");
Du willst doch das auf dem Button auch was drauf steht

    press.addActionListener(this);
    this.add(press);

    setBackground(Color.lightGray);
    setSize(200, 400);
    setVisible(true);
    // Window ini end
Angezeigt werden soll er ja auch

und nochmal das ganze zum mitschreiben:

import java.awt.*;
import java.awt.event.*;


public class Test extends Frame {
  // Anfang Variablen
  // Ende Variablen
  Test test = null;

  public Test(final String title) {
    // Frame-Initialisierung
    super(title);
   
   
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) { System.exit(0); } });
    setSize(300, 300);
    setLayout(new BorderLayout());

    // Anfang Komponenten
    // Ende Komponenten

    setVisible(true);
  }

  // Anfang Ereignisprozeduren

  public void setzeBackground ( Color color ) {
    setBackground(color);
  }
  // Ende Ereignisprozeduren

  public static void main(final String[] args) {
    window Window = new window();
    Window.ini(new Test("Test"));
  }
}

class window extends Frame implements ActionListener {
  Button press = new Button("Klicken");
  Test parent = null;
 
  public void ini ( Test testframe ) {
    // Window ini start
    parent = testframe;
   
    addWindowListener(new WindowAdapter() {
      public void windowClosing(final WindowEvent evt) {
        evt.getWindow().dispose();
        evt.getWindow().setVisible(false);
      }
    });
    press.addActionListener(this);
    this.add(press);

    setBackground(Color.lightGray);
    setSize(200, 400);
    setVisible(true);
    // Window ini end
  }

  public void actionPerformed ( ActionEvent evt )  {
    Color color = new Color(123, 123, 123);
    parent.setzeBackground(color);
  }
}

« Letzte Änderung: 24.11.05, 20:07:46 von BWA »

Na, ich denke mal du hast die Äußerung, dass ich noch nicht lange proge, gemacht, weil ich den Button nicht anzeigen lassen habe... Kann ich verstehen ... aber mir ging es hier um den Methodenaufruf und da war mir erst mal Schnuppe, ob was auf dem Button steht oder net. Das der noch nicht erzeugt wurde war auch erst mal egal, denn wenns Prog net startet muss das auch noch nicht so wichtig sein...

Ok, so weit erst mal ... Aber wirklich danke für die Hilfe! Um ehrlich zu sein, habe ich aber schon eine andere Lösung für mein Prob und da brauche ich das nicht xD Aber gut das zu wissen... 

THX Stiewen


« Führende Nullen in einer SQL-AbfrageJava Dateien einbeziehen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Testimonial
Der Begriff Testimonial hat auf deutsch eine etwas andere Bedeutung als auf englisch: Im Englischen bezeichnet Testimonial eine "Empfehlung" oder "Referenz", meist bekann...

Mainframe
Große Computer, wie sie in Rechenzentren zum Einsatz kommen, und die über Terminals Tausende von Anwender bedienen. Siehe auch Super-Computer...

Blende
Die Blende, oder auch fotografische Blende, ist eine mechanische Vorrichtung und Teil des Objektives bei Foto- und Videokameras. Dieser Teil des Objektivs kontrolliert di...