Wo wird ein Button geklickt?

  • 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!

  • 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

  • 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

  • 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

  • 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!

  • 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

  • @ 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!

  • dirty, but works: :shinner:

    HTML
    jButton1.setEnabled(false);
    jButton1.setText("<html><font color=\"black\">"+jButton1.getText()+"</font></html>");
  • Zitat von java-girl

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

    why not?

    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.

  • 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?"

  • Zitat von java-girl

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

    ok, das musst du schon dazusagen ;)

  • Sorry ^^ 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!

  • Zitat von java-girl

    Hat irgendjemand eine Idee?

    vielleicht die methode setDisabledIcon() in JToggleButton verwenden?

  • 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!!!

    :D

    There's no better place than 127.0.0.1!

Jetzt mitmachen!

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