~Java4Beginners~
~Java4Beginners~

JButton

Allseits bekannt ist die Funktionalität eines Buttons. Er ist in fast jedem Programm zu finden, egal ob als OK-Button, Cancel-Button, Schließen-Button etc.

Bei Betättigen des Buttons wird eine bestimmte Aktion ausgeführt, welche sich auf Grund der Beschriftung ergeben sollte.

notwendige Imports


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
Der Import für ActionEvent und ActionListener ist hier im Moment notwendig, um auf die Button-Ereignisse zu reagieren. Den ActionListener wird über Vererbung unserer Klasse beigefügt. Die notwendige abstrakte Methode ebenfalls.

public class Bedien_Jbutton extends JFrame implements ActionListener
. . . . .
public void actionPerformed(ActionEvent e)

Konstruktoren

Neben dem Standardkonstruktor stehen uns 4 weitere Konstruktoren zur Verfügung, welche bestimmte Parameter erwarten. Die Parameter können sein:
  • Action a (Zuweisung einer Aktion)
  • Icon icon (Zuweisen eines Icons)
  • String text (Buttonbeschriftung)
Somit haben wir folgende 5 Konstruktoren:
  1. JButton()
  2. JButton(a)
  3. JButton(text)
  4. JButton(icon)
  5. JButton(text, icon)

Methodenübersicht

Nachfolgend einige hilfreiche Methoden für den Umgang mit JButton's.
Methode Beschreibung
addActionListener() Fügt den Button einen ActionListener zu.
addChangeListener() Fügt den Button einen ChangeListener hinzu. Dieser wird aufgerufen, wenn sich der Zustand des Buttons ändert. Wenn ChangeListener verwendet werden soll, wird er wie der ActionListener implementiert.
getHorizontalAlignment() Gibt die Horizontale Ausrichtung von Icon und Text zurück.
getVerticalAlignment() Gibt die vertikale Ausrichtung von Icon und Text zurück.
getHorizontalTextPosition() Gibt die horizontale Textposition in Relation zum Icon wieder.
getVerticalTextPosition() Gibt die vertikale Texposition in Relation zum Icon wieder.
setMnemonic(int mnemonic) Setzt das Mnemonic (Unterstrichener Buchstabe für Aufruf in Verbindung mit der ALT-Taste) auf. Als Parameter wird die Konstante aus der Klasse KeyEvent erwartet, z. B. KeyEvent.VK_S für den Buchstaben S. Alternativ kann als Parameter auch ein Char übergeben werden, z. B. ('C')
getMnemonic() Gibt das gesetzte MNemonic zurück.
setEnabled(boolean b) b = true aktiviert den Button, b = false deaktiviert den Button.
setText(String text) Setzt die Button-Beschriftung
setToolTipText(String text) Setzt den Text, welcher angezeigt werden soll, wenn der Mauszeiger über dem Button steht.
Die get-Methoden sind ebenso als set-Methode verfügbar.

Beispielprogramm

Eine genauere Erklärung zum ActionListener erfolgt später in einem Kapitel Eventhandling.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * Beispielprogramm JButton
 * @author Markus Badzura
 */
public class Bedien_Jbutton extends JFrame implements ActionListener
{
    public int zaehler = 0;
    public JButton b1;
    public void Bedien_Jbutton()
    {
        this.setSize(300,300);
        this.setTitle("Beispiel JTextField");   
        this.setLayout(null);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
        // Button-Beschriftung hinzufügen
        b1 = new JButton("Drück mich");
        // Button dem Action-Listener hinzufügen
        b1.addActionListener(this);
        b1.setBounds(10,10,200,30);
        this.add(b1);
        this.setVisible(true);
    }
    public static void main(String[] args) 
    {
       Bedien_Jbutton bjb = new Bedien_Jbutton();
       bjb.Bedien_Jbutton();
    }
    @Override
    public void actionPerformed(ActionEvent e) 
    {
        // prüfen, ob b1 das Event ausgelöst hat
        if (e.getSource() == b1)
        {
            zaehler++;
            b1.setText(zaehler+" x gedrückt");
        }
    } 
}

Beispiel Mnemonic


        jb_vor_save = new JButton("Speichern");
        jb_vor_save.setMnemonic('S');
        jb_vor_cancel = new JButton("Abbrechen");
        jb_vor_cancel.setMnemonic(KeyEvent.VK_A);
        jb_vor_close = new JButton ("Beenden");
        jb_vor_close.setMnemonic('B');

Beispiel Navigationsbutton (mit Icon)

Folgender Quelltextauszug zeigt eine Simulation von einer Datenbanknavigation. Eingebaut hierbei ist auch ein Icon. Im ersten Schritt wird das Image-Icon deklariert. Hier die ausführliche Deklaration, dass nach Kompilierung des Programmes die Grafik auch vorhanden ist.

    private static final URL URLSAVE = frage_gui.class.getResource("Save.gif");
    private static final ImageIcon SAVE = new ImageIcon(URLSAVE);
Die "Navigationsleiste" würde dann mit folgendem Quelltext erstellt. Deklaration findet vorher schon statt.

        pan_navi = new JPanel();
        pan_navi.setLayout(null);
        pan_navi.setBounds(200,600,SCREENSIZE.width-220,40);
        jb_fragen_first = new JButton("|<");
        jb_fragen_first.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_first.setEnabled(false);
        jb_fragen_first.setBounds(0,0,50,30);
        jb_fragen_before = new JButton("<<");
        jb_fragen_before.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_before.setEnabled(false);
        jb_fragen_before.setBounds(60,0,50,30); 
        lbl_fragen_navi = new JLabel("000 von 000",JLabel.CENTER);
        lbl_fragen_navi.setBounds(110,0,100,30);
        jb_fragen_after = new JButton(">>");
        jb_fragen_after.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_after.setEnabled(false);
        jb_fragen_after.setBounds(220,0,50,30);      
        jb_fragen_last = new JButton(">|");
        jb_fragen_last.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_last.setEnabled(false);
        jb_fragen_last.setBounds(280,0,50,30);    
        jb_fragen_goto = new JButton(">?");
        jb_fragen_goto.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_goto.setEnabled(false);
        jb_fragen_goto.setBounds(340,0,50,30);
        jb_fragen_new = new JButton("*");
        jb_fragen_new.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_new.setEnabled(false);
        jb_fragen_new.setBounds(400,0,50,30);  
        jb_fragen_save = new JButton();
        jb_fragen_save.setIcon(SAVE);
        jb_fragen_save.setHorizontalAlignment(JButton.CENTER);
        jb_fragen_save.setEnabled(false);
        jb_fragen_save.setBounds(460,0,50,30);         
        pan_navi.add(jb_fragen_first);
        pan_navi.add(jb_fragen_before);
        pan_navi.add(lbl_fragen_navi);
        pan_navi.add(jb_fragen_after);
        pan_navi.add(jb_fragen_last);
        pan_navi.add(jb_fragen_goto);
        pan_navi.add(jb_fragen_new);
        pan_navi.add(jb_fragen_save);
nach oben Java4Beginners -- Seitenversion 1.01 -- Stand: 2017-05-23