Java JButton und ActionListener

Posted: Mai 16th, 2012 | Filed under: Allgemein, Java, Programmieren, Tutorials | Tags: , , , , , , , | No Comments »

Hier ein kleines Beispiel für alle Java Swing Neulinge. Mit Hilfe eines ActionListeners könnt ihr Klicks auf einen JButton abfangen. Funktioniert natürlich auch, falls ihr die Schaltfläche mit der Tastatur auslöst (zum Beispiel bei Focus mit Hilfe der Leertaste).

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JButtonExample implements ActionListener{
    
    private JButton button;

    public JButtonExample() {
        // Fenster anlegen
        JFrame frame = new JFrame();
        frame.setTitle("JButton Example");
        frame.setLayout(new BorderLayout());
        
        // Button anlegen
        this.button = new JButton("OK");

        // Eventhandler für Button zuweisen
        this.button.addActionListener(this);
        
        // Button der Frame hinzufügen
        frame.add(this.button);
        
        // Fenster zentrieren
        frame.setSize(350,150);
        frame.setLocationRelativeTo(null);
        
        // Fenster sichbar machen
        frame.setVisible(true);
    }
    
    public static void main(String[] args) {
        new JButtonExample();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(button == e.getSource()){
            System.out.println("Button wurde geklickt!");
        }
    }
}

Ich hoffe ich konnte dem ein oder anderen mit diesem Tutorial helfen =)


JQuery UI Dialog – Buttons anpassen

Posted: September 25th, 2010 | Filed under: Programmieren, Tutorials | Tags: , , , , , | 1 Comment »

Gestern wollte ich etwas an einem JQuery UI Dialog anpassen, was scheinbar von Seitens der UI nicht ohne weiteres vorgesehen ist. Ich wollte den Buttons im Dialog seperate ID’s zuweisen, um sie später über Selektoren ansprechen zu können.

Eine Lösung, die ich hier im JQuery Forum gefunden habe nutzte mir auch nichts, da sich auf meiner Seite mehrere unterschiedliche Dialoge befanden und ich somit nie sicher sein konnte, das auch wirklich der richtige Button angesprochen wird.

Nach weiteren erfolglosen Versuchen habe ich dann einfach die eigentlich JQuery UI Funktion überschrieben und sie somit um meine gewünschte Funktionen erweitert.

$(function() {
	(function() {
		var dialogPrototype = $.ui.dialog.prototype;
		var originalButtons = dialogPrototype._createButtons;
		dialogPrototype._createButtons = function(buttons) {

			originalButtons.apply(this, arguments);

			var $buttons = this.element.siblings('.ui-dialog-buttonpane').find('button');

			var i = 0;
			for ( var label in buttons) {
				var button = buttons[label];
				var $button = $buttons.eq(i);

				if (button.title) {
					$button.attr('title', button.title);
				}

				if (button.classes) {
					$button.addClass(button.classes);
				}

				if (button.id) {
					$button.attr('id', button.id);
				}

				i += 1;
			}
		}

	})();

	// Dialog
	$('#dialog').dialog( {
		autoOpen : false,
		width : 600,
		buttons : {
			"Ok" : function() {
				$(this).dialog("close");
			},
			"Cancel" : $.extend(function() {
				$(this).dialog("close");
			}, {
				classes : 'dismiss',
				title : 'Abbrechen',
				id : 'thisIsTheId'
			})
		}
	});

	// Dialog Link
	$('#dialog_link').click(function() {
		$('#dialog').dialog('open');
		return false;
	});
});

Ich hoffe, dass ihr etwas damit anfangen könnt. Ansonsten bis zu meinem nächsten Blogeintrag! 😉