MouseListener klicks begrenzen

Husamoli

Mitglied
Hallo ich habe einen MouseListener gemacht der allerdings nur bei Doppelklick funktioniert ich möchte aber das er bei einem normalen Klick die Klicks zählt und dann das ausführt was ich möchte mit den anderen Methoden von MouseListenern
  • mouseClicked(MouseEvent e): Wird ausgeführt, wenn die Maus vom Benutzer geklickt wurde.
  • mouseEntered(MouseEvent e): Wird ausgeführt, wenn die Maus eine Komponente betritt.
  • mouseExited(MouseEvent e): Wird ausgeführt, wenn die Maus eine Komponente verlässt.
  • mousePressed(MouseEvent e): Wird ausgeführt, wenn eine Maustaste über einer Komponente gedrückt wurde.
habe ich es auch schon probiert allerdings wird trotzdem nur auf Doppelklick reagiert kann mir wer helfen?
Java:
public void mouseReleased(MouseEvent e) {
                    if (schiffesetzen == 0) {
                    ((Component) e.getSource()).setBackground(Color.BLACK);
                    schiffesetzen = 3;
                    }
                     else  {
                        JOptionPane.showMessageDialog(Spielfeld, "Sie haben alle Schiffe gesetzt los gehts!");
                        setVisible(false);



das ist der Code der auf dieser GUI reagieren soll...
Java:
package Schiffeversenken;

import java.awt.Color;
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.rmi.Remote;
import java.rmi.RemoteException;

import javax.security.auth.callback.Callback;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import Schiffe.GUI.PrintField;

public class GUI extends JFrame implements ActionListener ,MouseListener{

    private static final long serialVersionUID = 1L;
    public static Spieler[] Spieler = new Spieler[1];
    private JLabel Tietel;
    private JLabel Name;
    private JLabel Name2;

    private JButton Start1;
    private JButton Beenden;
    static JTextField textName;
    static JTextField textName2;

    public GUI() {

        this.setTitle("Schiffe versenken" + Spieler);
        this.Tietel = new JLabel("Willkommen zum Schiffeversenken");  
        this.Name = new JLabel("Name 1");
        this.Name2 = new JLabel("Name 2");


        this.Start1 = new JButton("Start");
        this.Beenden = new JButton("Beenden");
        this.textName = new JTextField();
        this.textName2 = new JTextField();
        new JTextField();
        this.setVisible(true);

        Beenden.addActionListener(this);
        add(Beenden);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(500, 500);
        this.setLayout(new GridBagLayout());
        this.ordneAn();
        this.Listenererstellen();
        this.setVisible(true);

    }

    public void ordneAn() {
        GridBagConstraints c = new GridBagConstraints();
        c.fill = GridBagConstraints.HORIZONTAL;
        c.insets = new Insets(4, 4, 4, 4);

        c.gridx = 0;
        c.gridy = 0;
        c.gridwidth = 0;

        this.getContentPane().add(Tietel, c);

        c.gridx = 0;
        c.gridy = 1;

        this.getContentPane().add(Name, c);

        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth = 3;

        this.getContentPane().add(textName, c);

        c.gridx = 2;
        c.gridy = 1;

        this.getContentPane().add(Name2, c);

        c.gridx = 2;
        c.gridy = 2;
        c.gridwidth = 2;

        this.getContentPane().add(textName2, c);

        c.gridx = 0;
        c.gridy = 3;
        c.gridwidth = 1;

        this.getContentPane().add(Start1, c);

        c.gridx = 3;
        c.gridy = 3;
        c.gridwidth = 1;

        this.getContentPane().add(Beenden, c);

    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        Object object = ae.getSource();
        if (object.equals(Beenden)) {
            System.exit(0);
        }

    }

    public void Listenererstellen() {
        Start1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Spielfeld feld1 = new Spielfeld();
                Spielfeld feld2 = new Spielfeld("baba");
                Schiff schiffe = new Schiff();
                schiffe.buttonsFürSchiffeSetzen();

            }
        });
    }

   
    public void mouseClicked(MouseEvent arg0) {
        // TODO Automatisch generierter Methodenstub
       
    }

    @Override
    public void mouseEntered(MouseEvent arg0) {
        // TODO Automatisch generierter Methodenstub
       
    }

    @Override
    public void mouseExited(MouseEvent arg0) {
        // TODO Automatisch generierter Methodenstub
       
    }

    @Override
    public void mousePressed(MouseEvent arg0) {
        // TODO Automatisch generierter Methodenstub
       
    }

    @Override
    public void mouseReleased(MouseEvent arg0) {
        // TODO Automatisch generierter Methodenstub
       
    }

}
 

Robat

Top Contributor
So richtig versteh ich deine Frage noch nicht. mouseEntered und mouseExited haben doch gar nichts mit einem Mausklick zu tun?
Und wenn du in mousePressed / mouseClicked zwischen Doppel - und Einfachklick unterscheiden dann mach eine if-Abfrage rein
Java:
@Override
public void mousePressed(MouseEvent e) {
     if(e.getClickCount() == 2) {
          // doppelklick
     } else if(e.getClickCount() == 1) {
         // einfachklick
     }
}
 

Husamoli

Mitglied
Danke für deine Antwort allerdings funktioniert es immernoch nicht so wie ich vorhabe...
Java:
public void mouseClicked(MouseEvent e) {
                     if(e.getClickCount() >= 6) {
                        
                         JOptionPane.showMessageDialog(Spielfeld, "Sie haben alle Schiffe gesetzt los gehts!");
                        
                        
                          // doppelklick
                     } else if(e.getClickCount() >= 2) {
                         JOptionPane.showMessageDialog(Spielfeld, "Sie haben alle Schiffe gesetzt los gehts!");
                         // einfachklick


so hab ich das jetzt implementiert mein Ziel ist es bei 6 Maus Klicks auf dem GUI Feld Sie habe alle Schiffe gesetzt auszugeben aber ich kann beliebig viele Felder anklicken ausser ich mache Doppelklick dann kommt die Dialog Naricht
 

Robat

Top Contributor
Also nur das du es richtig verstehst: getClickCount() liefert die Anzahl der Mausklicks für dieses Event.
Wenn du einen Doppelklick detektieren möchtest musst du mit getClickCount() arbeiten. Willst du die Anzahl der platzierten Schiffe, also die Anzahl der Mausklicks, haben musst du Attribut anlegen, welches hochgezählt wird sobald die Methode aufgerufen wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
V Problem - MouseListener/2DGraphics Java Basics - Anfänger-Themen 2
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
R Variable Klassenübegreifend MouseListener Java Basics - Anfänger-Themen 0
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
P MouseListener funktioniert nicht Java Basics - Anfänger-Themen 6
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Problem mit MouseListener Java Basics - Anfänger-Themen 4
T MouseListener, recht Taste Java Basics - Anfänger-Themen 2
M MouseListener funktioniert nicht Java Basics - Anfänger-Themen 9
E Mouselistener auf jTable Java Basics - Anfänger-Themen 18
B Variablen an MouseListener übergeben Java Basics - Anfänger-Themen 5
H MouseListener für ein eingefügtes Bild in einem JFrame Java Basics - Anfänger-Themen 7
H Mouselistener bei JTable Java Basics - Anfänger-Themen 4
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
L Label + MouseListener Java Basics - Anfänger-Themen 12
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
M MouseListener Java Basics - Anfänger-Themen 2
kitz MouseListener Java Basics - Anfänger-Themen 8
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
D Problem mit Mouselistener und jtable Java Basics - Anfänger-Themen 7
C fragen zu MouseListener Java Basics - Anfänger-Themen 3
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
S Probleme mit 2 mouselistener Java Basics - Anfänger-Themen 6
A Frage zu MouseListener Java Basics - Anfänger-Themen 2
D Mouselistener Java Basics - Anfänger-Themen 2
A jPanel an MouseListener übergeben? Java Basics - Anfänger-Themen 2
S Swing JEditoPane MouseListener Java Basics - Anfänger-Themen 5
M Mouselistener Java Basics - Anfänger-Themen 4
S MouseListener funzt net. Java Basics - Anfänger-Themen 5
G MouseListener double click? Java Basics - Anfänger-Themen 1
V MouseListener Java Basics - Anfänger-Themen 5
M MouseListener Java Basics - Anfänger-Themen 3
N Mouselistener? Java Basics - Anfänger-Themen 5
T ein MouseListener pro Objekt sinnvoll? Java Basics - Anfänger-Themen 4
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
U MouseListener Java Basics - Anfänger-Themen 2
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
S MouseListener - Events auf Mouseklick Java Basics - Anfänger-Themen 14
L MouseListener Problem. Java Basics - Anfänger-Themen 2
S mouselistener Java Basics - Anfänger-Themen 3
N MouseListener Java Basics - Anfänger-Themen 2
J MouseListener implementieren Java Basics - Anfänger-Themen 12
P MouseListener wird anscheinend nicht benutzt Java Basics - Anfänger-Themen 12
N MouseListener - reagiert zu spät Java Basics - Anfänger-Themen 3
D JList - Textzeilen MouseListener zuweisen Java Basics - Anfänger-Themen 4
M prüfen ob mouselistener gesetzt ist. Java Basics - Anfänger-Themen 10
O image und mouseListener Java Basics - Anfänger-Themen 15
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
P Kann keinen MouseListener hinzufügen Java Basics - Anfänger-Themen 3
G MouseListener einbauen - wie? Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Threads Klicks pro Sekunde parallel zum Programm bekommen Java Basics - Anfänger-Themen 5
D ActionListener braucht zwei Klicks auf Button??? Java Basics - Anfänger-Themen 2
T Begrenzte Anzahl von Klicks Java Basics - Anfänger-Themen 3
M ActionListener: Ort des Klicks? Java Basics - Anfänger-Themen 2
nils812 Black Jack Karten Anzahl begrenzen Java Basics - Anfänger-Themen 5
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
M BufferedReader begrenzen Java Basics - Anfänger-Themen 3
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
D Anzahl von Zahlen bei eingabe begrenzen Java Basics - Anfänger-Themen 37
D Größe der Zahlenkombinationen eines Arrays begrenzen Java Basics - Anfänger-Themen 0
E Eingabemöglichkeiten für Textfeld begrenzen Java Basics - Anfänger-Themen 6
S Langtext auf bestimmten Bereich begrenzen Java Basics - Anfänger-Themen 3
T Ausführung zeitlich begrenzen? Java Basics - Anfänger-Themen 2
V Nachkommastellen begrenzen (1,xxx) Java Basics - Anfänger-Themen 3
-horn- Java Speicherbedarf begrenzen? (Nicht Jar) Java Basics - Anfänger-Themen 3
isowiz Threads sammeln und max. Anzahl begrenzen Java Basics - Anfänger-Themen 2
W JFileChooser - Eingebbare Zeichen begrenzen Java Basics - Anfänger-Themen 3
B Wie Dateitypauswahl in JFileChooser Opendialog begrenzen? Java Basics - Anfänger-Themen 2
R Zahlen bei printf auf 2 Nachkommestellen begrenzen Java Basics - Anfänger-Themen 10
G JTextField Eingabe begrenzen? Java Basics - Anfänger-Themen 3
G String-Zeichenanzahl begrenzen Java Basics - Anfänger-Themen 13
M Double: Nachkommastellen begrenzen Java Basics - Anfänger-Themen 8
B Name und PLZ begrenzen Java Basics - Anfänger-Themen 3
R JDesktopPane Anzeigebereich begrenzen Java Basics - Anfänger-Themen 3
cowabunga1984 Größe einer Logdatei begrenzen Java Basics - Anfänger-Themen 9
M Zeilenausgabe auf ein paar Zeichen begrenzen Java Basics - Anfänger-Themen 2
F JTextField: Textlänge begrenzen Java Basics - Anfänger-Themen 8
G Gleitkommaoperationen - Nachkommastellen begrenzen Java Basics - Anfänger-Themen 2
H Filesystem begrenzen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben