fenster schliesen und mouse events in einer nicht abstrakten klasse

teslar

Aktives Mitglied
das was im hintergrund geschieht ist eher unwichtig

Java:
import sum.kern.*;
import java.awt.event.*;
import java.io.*;

/**
 * @author 
 * @version 
 */
  class Spiel  implements Closeable //Spiel is not abstract and does not override abstract method close() in java.io.Closable
{
    // Bezugsobjekte
    Menu menu;
     Maus maus;
            static Spiel meineAnwendung;


    // Attribute

    // Konstruktor
    public Spiel () 
    {
        
            Bildschirm bild= new Bildschirm(500,500);
        
        bild.addWindowListener(new WindowAdapter()
            {
                public void windowClosing(WindowEvent we)
                {
                    System.exit(0);
                }
            }); 
        menu = new Menu();
        maus = new Maus();
    }

    // Dienste   
    public static void main(String args[])
    {
        meineAnwendung = new Spiel();
        meineAnwendung.test();
    }
    public void test() throws java.io.IOException
    {
        boolean end = false;
            menu.rufeAuf(); //thread wird gestartet um benue zu zeichnen
        do
        {
            while(!maus.istGedrueckt())// meine abfrage, welcher button gedrückt wird
            {}
            if (maus.hPosition()>=100&&maus.hPosition()<=200&&maus.vPosition()>=95&&maus.vPosition()<=130) //anderer button gedrückt
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=300&&maus.hPosition()<=400&&maus.vPosition()>=95&&maus.vPosition()<=130) //anderer button gedrückt
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=100&&maus.hPosition()<=200&&maus.vPosition()>=195&&maus.vPosition()<=230) //anderer button gedrückt
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=300&&maus.hPosition()<=400&&maus.vPosition()>=195&&maus.vPosition()<=230) // close-button gedrückt
            {
                end=true;
                menu.rufeAb();
                close();
            }
        }while(end==false);
    }
}

diese klasse ist wie man sieht NICHT abstract.
ist so, weil ich abstrakte klassen nicht durch eine main methode starten kann.
ich benutze auch keine buttons, da dies mit der sum-maus kollidiert
nun möchte ich das programm durch "close" beenden, aber es kommt die fehlermeldung, die oben bei der klasse im kommentar angezeigt ist.
kann aber auch nicht einfach die klasse abstrakt machen weil das dann halt mit der main nicht klappt,

das gleiche problem habe ich auch, wenn ich mouse listener einfügen will, deswegen diese komische abfrage.

also:
wie bekomm ich es hin, das ich sowohl die main methode habe, als auch die close methode

ich weis das höhrt sich alles komisch und verwirrend an, aber um 5uhr morgens... ich versuch notfalls eine bessere version rauszuposaunen, wennn ich wach bin...

ps: java rafft mich hin, wieso braucht nen mouse listener ne abstrakte klasse,(oder mach ich hier fehler) /leider hab ich davon im moment kein quelltext bereit/,mir macht es nur sinn, ein event in der ausführenden klasse zu haben, die ja nicht abstrackt seien kann wegen dem main kram
wenn es möglich ist hier auch helfen...

also ich versuch nochmal ne bessere version dieses posts rauszuhaun, aber ich machs erstmal so weil ichs sonst eh wieder vergess^^
 
J

JohannisderKaeufer

Gast
Schenk dir mal nen ordentlichen Kaffee ein!

Was ein Interface in Java ist weißt du?

Das Interface Closable und die Tatsache, dass Spiel das Interface Closable implementiert bedeuten das es in der Klasse Spiel eine Methode void close(); geben mußt.

Auf English:
does not override abstract method close()

Die andere Möglichkeit ist, daß man aus Spiel eine Abstrakte Klasse macht. Das hat zur Folge das man aber eine Konkrete Klasse braucht die von Spiel erbt. Für die dann erbende Klasse hätte es dann zur Folge, dass dort dann eine Methode void close() definiert sein muß.

Mit dem Interface Closable mußt du halt schreiben was passieren soll, wenn das close aufgerufen wird.
 

teslar

Aktives Mitglied
so bin jetz wieder relativ fit, veersteh ich das dann richtig das ich das ungefär so machen muss:
Java:
import sum.kern.*;
import java.awt.event.*;
import java.io.*;

/**
 * @author 
 * @version 
 */
  class Spiel  implements Closeable 
{
    // Bezugsobjekte
    Menu menu;
     Maus maus;
            static Spiel meineAnwendung;


    // Attribute

    // Konstruktor
    public Spiel () 
    {
        
            Bildschirm bild= new Bildschirm(500,500);
        
        bild.addWindowListener(new WindowAdapter()
            {
                public void windowClosing(WindowEvent we)
                {
                    System.exit(0);
                }
            }); 
        menu = new Menu();
        maus = new Maus();
    }

    // Dienste   
    public static void main(String args[]) throws java.io.IOException
    {
        meineAnwendung = new Spiel();
        meineAnwendung.test();
    }
    public void test() throws java.io.IOException
    {
        boolean end = false;
            menu.rufeAuf();
        do
        {
            while(!maus.istGedrueckt())
            {}
            if (maus.hPosition()>=100&&maus.hPosition()<=200&&maus.vPosition()>=95&&maus.vPosition()<=130)
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=300&&maus.hPosition()<=400&&maus.vPosition()>=95&&maus.vPosition()<=130)
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=100&&maus.hPosition()<=200&&maus.vPosition()>=195&&maus.vPosition()<=230)
            {
                end=true;
                menu.rufeAb();
                
            }else if (maus.hPosition()>=300&&maus.hPosition()<=400&&maus.vPosition()>=195&&maus.vPosition()<=230)
            {
                end=true;
                menu.rufeAb();
                close();
            }
        }while(end==false);
    }
    public void close()
    {}
}
jetz zeigt er mir nicht mehr an, das dort ein fehler ist, aber was muss in den void close?


--

hab auch schon ne andere lösung, es hilft wirklich wach zu sein, denn ich benutze in diesem programm schon system.exit(0);
hab jetz erstmal das genommen,
würd mich aber trotzdem noch interessieren, wie das mit close geht.

hat vllt jemand nen tutorial zu mouseevents, welches gut und relativ leicht zu verstehn is?
 

Michael...

Top Contributor
jetz zeigt er mir nicht mehr an, das dort ein fehler ist, aber was muss in den void close?
Das bestimmt derjenige, der das Interface implementiert - also Du ;-)
Wobei die Verwendung hier fraglich und für Dein Vorhaben völlig irrelevant ist. Ein Blick in die API Doku hätte den Sinn dieses Interfaces offenbart.
A Closeable is a source or destination of data that can be closed. The close method is invoked to release resources that the object is holding (such as open files).
hat vllt jemand nen tutorial zu mouseevents, welches gut und relativ leicht zu verstehn is?
How to Write a Mouse Listener (The Java™ Tutorials > Creating a GUI With JFC/Swing > Writing Event Listeners)
 

Michael...

Top Contributor
danke für die hilfe
ist den dieses system.exit(0) in oordnung oder gibt das irgentwann probleme?
Das ist der übliche/ korrekte Weg um einen Anwendung zu beenden.

Allerdings löst man ein normales Beenden heutzutage nicht mehr über einen selbst implementierten WindowListener/Adapter.
JFrame bietet eine Methode setDefaultCloseOperation mit der man verschiedene Standardverhaltensweisen beim schließen des Fensters einstellen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Fenster Schliesen Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben