1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Wo wird ein Button geklickt?

  • java-girl
  • 15. März 2006 um 16:58
  • Unerledigt
  • 1
  • 2
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 16:58
    • #1

    Hallo!
    Ich stehe vor einem sehr kniffligen Problem...
    Ich möchte das Event abfangen, das einen Button bzw. ToggleButton dazu veranlasst, das er sich eindrückt...
    Mit der Methode setEnabled(false); kann ich den Button ausschalten, so dass er nicht mehr geklickt werden kann...aber dann ist er eingegraut, das kann ich nicht gebrauchen...
    Ich möchte selbst einen Status für den Button erstellen und dann wenn der Button geklickt wird abgefragt wird ob er noch geklickt werden darf und dann wenn er es nicht darf soll gar nichts mehr passieren...

    Ich hoffe das war halbwegs verständlich?
    Vielleicht weiß jemand wo der Klick wirklich passiert?

    Ist sehr knifflig, ich weiß...

    Lg.
    java-girl

    There's no better place than 127.0.0.1!

  • KeinWunder
    7
    KeinWunder
    Mitglied
    Punkte
    490
    Beiträge
    90
    • 15. März 2006 um 17:10
    • #2

    warum machst dus nicht im actionPerformed()?

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 17:18
    • #3

    Blah weil im actionPerformed(); der Button schon längst geklickt wurde...es geht darum dass er sich nicht bewegt...

    There's no better place than 127.0.0.1!

  • KeinWunder
    7
    KeinWunder
    Mitglied
    Punkte
    490
    Beiträge
    90
    • 15. März 2006 um 17:37
    • #4

    aso
    du kannst dem JButton statt einen ActionListener auch einen MouseListener hinzufügen und dann mouseClicked() abfangen

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 17:47
    • #5

    Nein geht nicht.

    There's no better place than 127.0.0.1!

  • KeinWunder
    7
    KeinWunder
    Mitglied
    Punkte
    490
    Beiträge
    90
    • 15. März 2006 um 18:06
    • #6

    was geht nicht?
    das du ihn nicht hinzufügen kannst oder das mouseClicked() aufgerufen wird?

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 18:08
    • #7

    Nocheinmal: Ich habe gesagt das ich möchte das der Button sich nicht mehr rührt und nicht einfach nur die Events disablen...es geht nicht so! Ich arbeite ja schon mit einem MouseListener weil ich den Rechtsklick brauche

    There's no better place than 127.0.0.1!

  • KeinWunder
    7
    KeinWunder
    Mitglied
    Punkte
    490
    Beiträge
    90
    • 15. März 2006 um 18:20
    • #8

    vielleicht gehts indem du von JButton ableitest und die Methode überschreibst die den Button zeichnet(paintComponent()?)

    Four stages of acceptance:
    1.) this is worthless nonsense
    2.) this is interesting, but perverse, point of view
    3.) this is true, but quite unimportant
    4.) I alwas said so
    J.B.S. Haldane

  • psycho
    6
    psycho
    Mitglied
    Reaktionen
    1
    Punkte
    296
    Beiträge
    57
    • 15. März 2006 um 18:23
    • #9

    Vielleicht musst du das Buttonmodel bzw. dessen Methoden ändern, habe jetzt aber keine Zeit, mir das genauer anzuschauen...

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 18:26
    • #10

    @ keinWunder: das war mein erster Ansatz aber das geht nicht weil das Zeichnen von der UI übernommen wird und ich dann die UI neu schreiben müsste.

    @ psycho: du brauchst es dir auch nicht näher anschauen, wollt nur wissen ob vielleicht irgendjemand Ahnung davon hat....:(

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. März 2006 um 18:34
    • #11

    dirty, but works: :shinner:

    HTML
    jButton1.setEnabled(false);
    jButton1.setText("<html><font color=\"black\">"+jButton1.getText()+"</font></html>");
  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 18:42
    • #12

    Hm danke aber ich brauche das für einen JToggleButton und bei dem funzts nicht :frowning_face:

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. März 2006 um 18:53
    • #13
    Zitat von java-girl

    ich brauche das für einen JToggleButton und bei dem funzts nicht :frowning_face:

    why not?

    Java
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    
    import javax.swing.JToggleButton;
    import javax.swing.WindowConstants;
    
    
    public class ButtonTest extends javax.swing.JFrame {
    	private JToggleButton jToggleButton1;
    
    
    	/**
    	* Auto-generated main method to display this JFrame
    	*/
    	public static void main(String[] args) {
    		ButtonTest inst = new ButtonTest();
    		inst.setVisible(true);
    	}
    
    	public ButtonTest() {
    		super();
    		initGUI();
    	}
    
    	private void initGUI() {
    		try {
    			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    			{
    				jToggleButton1 = new JToggleButton();
    				getContentPane().add(jToggleButton1, BorderLayout.CENTER);
    				jToggleButton1.setText("jToggleButton1");
    				jToggleButton1.addActionListener(new ActionListener() {
    					public void actionPerformed(ActionEvent evt) {
    						jToggleButton1ActionPerformed(evt);
    					}
    				});
    			}
    			pack();
    			setSize(400, 300);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    	private void jToggleButton1ActionPerformed(ActionEvent evt) {
    		if(jToggleButton1.getSelectedObjects()==null) {
    			jToggleButton1.setText("<html><font color=\"black\">"+jToggleButton1.getText()+"</font></html>");
    			jToggleButton1.setEnabled(false);
    		}
    	}
    }
    Alles anzeigen

    der button lässt sich bei mir einmal selektieren und wieder deselektieren, und dann lässt er keine aktion mehr zu; beschriftung ist weiterhin schwarz. wenn du das if in der handler-methode rausnummst, dann kannst du ihn reindrücken, und dann ist schluss.

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 19:02
    • #14

    Nein es geht nicht. Probier das einmal mit Icons, die bleiben weiterhin eingegraut...

    There's no better place than 127.0.0.1!

  • Sandybutt
    8
    Sandybutt
    Mitglied
    Reaktionen
    4
    Punkte
    554
    Beiträge
    99
    • 15. März 2006 um 19:05
    • #15

    Nur so aus Interesse - warum darf der Button nicht disabled und damit grau werden? Das wär doch eigentlich genau das, was jemand erwartet, der auf einen knopf drückt... Muss ja nicht button.setEnabled(false) sein, elegant wär sicher auch, die isDisabled() - Methode zu überlagern und durch eigenen Code zu ersetzen.

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 19:11
    • #16

    ICh brauche das weil ich Minesweeper schreibe...
    Und...ich diese Methode zu überlagern bringt nichts...hab schon alles probiert...:(

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. März 2006 um 19:16
    • #17
    Zitat von java-girl

    Nein es geht nicht. Probier das einmal mit Icons, die bleiben weiterhin eingegraut...

    ok, das musst du schon dazusagen :winking_face:

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 19:19
    • #18

    Sorry :grinning_face_with_smiling_eyes: ich hätte gedacht es gäbe mit der Schrift das gleiche Problem...

    Na ja meiner Ansicht nach ist wirklich die einzige Möglichkeit das Event, das den Button ein-/ausrasten läßt abzufangen aber welches ist das?...*seufz*...
    Hat irgendjemand eine Idee?

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 15. März 2006 um 19:47
    • #19
    Zitat von java-girl

    Hat irgendjemand eine Idee?

    vielleicht die methode setDisabledIcon() in JToggleButton verwenden?

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 15. März 2006 um 19:54
    • #20

    Ich glaubs nicht...DAAAANKE es geht!!!!!!!!!!!!!
    Mein Professor und ich haben über 1 1/2 Stunden nach einer Lösung gesucht und das ist sie...und sie war soo einfach!!
    Danke vielmals!!! Auf die Idee wär ich nie im Leben gekommen!!!

    :grinning_squinting_face:

    There's no better place than 127.0.0.1!

    • 1
    • 2

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern