MouseEvents aus JButton aufrufen

stylegangsta

Bekanntes Mitglied
Guten Morgen,

leider habe ich nirgends ein Ergebnis gefunden, was mein Problem löst.
Ich habe 16 JButtons, die innerhalb der Klasse vom JFrame aufgerufen werden und die Momentan mit dem MouseEvent dank der Hilfe des Forums genauso funktionieren, wie ich will. Ein Button hat folgenden Code (Fortsetzung unterhalb des Codes):
Java:
btnBayern = new JButton();
        btnBayern.setContentAreaFilled(false);

        // innere event klasse
        class MyMouseEventBayern extends MouseAdapter {

            public void mouseEntered(MouseEvent e) {
                btnBayern.setBorderPainted(true);
                btnBayern.setBorder(BorderFactory.createEtchedBorder(Color.decode("35529"), Color.decode("35529")));
                btnBayern.setOpaque(true);
                btnBayern.setContentAreaFilled(false);

            }

            public void mouseExited(MouseEvent e) {
                btnBayern.setBorderPainted(false);
                btnBayern.setOpaque(false);
                btnBayern.setContentAreaFilled(false);
                btnBayern.setFocusPainted(false);

            }
        }

        btnBayern.setIcon(new ImageIcon(Bayern_Wappen));
        btnBayern.addMouseListener(new MyMouseEventBayern());
        btnBayern.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                btnBayern.setBackground(Color.WHITE);
            }

            public void mouseExited(java.awt.event.MouseEvent evt) {
                btnBayern.setBackground(UIManager.getColor("control"));
            }
        });

        btnBayern.setFocusPainted(false);
        lblBayern = new JLabel("Bayern");
        lblBayern.setFont(lblBayern.getFont().deriveFont(Font.BOLD, 15));
        lblBayern.setForeground(Color.BLACK);
        lblBayern.setHorizontalAlignment(SwingConstants.CENTER);
        lblBayern.setVerticalAlignment(SwingConstants.CENTER);
        lblBayern.setBounds(340, 138, 110, 140);
        btnBayern.setBounds(340, 58, 110, 140);

Und das Ganze 16 mal untereinander ist ein verdammt langer Code. Um diesen übersichtlicher zu halten, hatte ich vor für jeden Button eine eigene MouseEvent Klasse zu erstellen und die dazugehörigen Methoden dort rein zu schreiben. Habe ich für einen Button exemplarisch gemacht. Code hier (frage dazu unterhalb des Codes):
Java:
package MouseEvents;

import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.BorderFactory;
import javax.swing.UIManager;
import javax.swing.border.Border;

public class MouseEventBW extends MouseAdapter {

    // Mousezeiger in Schaltfläche
    public void mouseEntered(MouseEvent e) {
        setBorderPainted(true);
        setBorder(BorderFactory.createEtchedBorder(Color.BLACK, Color.BLACK));
        setOpaque(true);
        setContentAreaFilled(false);
        setBackground(Color.decode("16375062"));

    }
  
    // Mousezeiger außerhalb Schaltfläche
    public void mouseExited(MouseEvent e) {
        setBorderPainted(false);
        setOpaque(false);
        setContentAreaFilled(false);
        setFocusPainted(false);
        setBackground(UIManager.getColor("control"));
    }

    private void setBackground(Color decode) {
        // TODO Auto-generated method stub

    }

    private void setContentAreaFilled(boolean b) {
        // TODO Auto-generated method stub

    }

    private void setOpaque(boolean b) {
        // TODO Auto-generated method stub

    }

    private void setBorder(Border createEtchedBorder) {
        // TODO Auto-generated method stub

    }

    private void setBorderPainted(boolean b) {
        // TODO Auto-generated method stub

    }

    private void setFocusPainted(boolean b) {
        // TODO Auto-generated method stub

    }
}

Ist die Klasse so überhaupt korrekt geschrieben?
Wenn ja, wie kann ich die jetzt aus dem JButton, der im Jframe ist aufrufen?
Bekomme das einfach nicht hin. Geht das überhaupt?
Danke im Voraus
 

Enceladus271

Bekanntes Mitglied
Den Button kannst du einfach im Konstruktor übergeben.
Java:
  public class MouseEventBW extends MouseAdapter {

     private final AbstractButton   button;

     public MouseEventBW( AbstractButton button ) {
       this.button = button;
     }

     @Override
     public void mouseEntered( MouseEvent arg0 ) {
       button.setBorderPainted( true );
       button.setBorder( BorderFactory.createEtchedBorder( Color.BLACK, Color.BLACK ) );
       button.setOpaque( true );
       button.setContentAreaFilled( false );
       button.setBackground( Color.decode( "16375062" ) );
     }

     @Override
     public void mouseExited( MouseEvent arg0 ) {
       button.setBorderPainted( false );
       button.setOpaque( false );
       button.setContentAreaFilled( false );
       button.setFocusPainted( false );
       button.setBackground( UIManager.getColor( "control" ) );
     }
   }
Der Aufruf sieht dann so aus: button.addMouseListener( new MouseEventBW( button ) );

Ich würde den Namen der Klasse aber nochmal überdenken. Der Name erinnert mmn. zu stark an MouseEvent. Und MouseEvent und MouseListener/Adapter sind halt zwei unterschiedliche Klassen.
 

stylegangsta

Bekanntes Mitglied
Cool, danke. Funktioniert super. Was den Klassennamen angeht ist mir leider nichts Besseres eingefallen, als auch die Abkürzung, die ich für die Buttons und Labels (also in dem Fall BW) verwende dran zu hängen, damit ich später auch sofort weiß um welche Funktion es sich für welchen Button handelt.
Schlechte Idee?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Halbkreiszeichnen(Canvas) - Diesen mit Mouseevents bestücken AWT, Swing, JavaFX & SWT 3
V Swing MouseEvents bei gestapelten Panels AWT, Swing, JavaFX & SWT 2
Luk10 Frage zu Mouseevents AWT, Swing, JavaFX & SWT 7
H mouseevents im JTree AWT, Swing, JavaFX & SWT 2
G MouseEvents AWT, Swing, JavaFX & SWT 4
I MouseEvents gehen verloren AWT, Swing, JavaFX & SWT 4
G JPopMenu und MouseEvents AWT, Swing, JavaFX & SWT 4
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
K MouseEvents für JTextField ausschalten AWT, Swing, JavaFX & SWT 9
G MouseEvents an Container weiterleiten AWT, Swing, JavaFX & SWT 8
T Eigene erweiterte MouseEvents nutzen AWT, Swing, JavaFX & SWT 2
F Problem mit Transparenz, MouseEvents und Performance AWT, Swing, JavaFX & SWT 3
G Neue Komponente erstellen - Fragen/Probleme mit MouseEvents AWT, Swing, JavaFX & SWT 2
A MouseEvents im Frame? AWT, Swing, JavaFX & SWT 2
K MouseEvents vor den Components abfangen? AWT, Swing, JavaFX & SWT 4
W MouseEvents mit Parameterübergabe? AWT, Swing, JavaFX & SWT 3
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
L JButton - Größe anders als erwartet AWT, Swing, JavaFX & SWT 2
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
S Größe und Farbe vom JButton festlegen AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
J JButton neu zeichnen lassen AWT, Swing, JavaFX & SWT 9
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
HoloYoitsu Swing JButton in verschiedenen Winkeln drehen AWT, Swing, JavaFX & SWT 0
J vocab1 = new JButton(""+voc1.get(nr).toString()+""); AWT, Swing, JavaFX & SWT 16
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
BRoll JButton Text nicht ausblenden ("...") AWT, Swing, JavaFX & SWT 2
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
S Swing Rückmeldung für JButton AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben