1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como registrar um evento de botão via código em JavaFX

Boa noite pessoal, gostaria de pedir uma orientação sobre JavaFx (estou iniciando nesta linguagem). A minha dúvida é como se registra um evento para um botão em JavaFX. Sei que quando se usa o fxml simplesmente se indica a classe que será utilizada para controle e indica-se no botão o nome do método que será executado. Ex.:

<BorderPane xmlns:fx="http://javafx.com/fxml" fx:controller="**classe_que_controlará_a_tela**">
  <center>
   <Button text="Clique aki" onAction="**#nome_do_metodo**"/>
  </center>
  <top>
  </top>
</BorderPane>

Mas e agora como que funciona quando se trabalha diretamente com código como é que se faz:

Button botao = new Button("Login");
botao.setId("Botao_botao");

Tudo que já vi na internet só mostra a criação destes eventos diretamente no botão. Tipo:

 botao.setOnAction(new EventHandler<ActionEvent>() {

         public void handle(ActionEvent arg0) {
         actiontarget.setText("O botao foi pressionado");
         }
         });

Só que isto não é nem um pouco produtivo. Até tentei criar uma classe que implementa-se a interface EventHandler, mas não sei como que faz para registrar mais de um botão para a classe (algo como é feito no java normal - ActionListener). Resumindo gostaria de saber como faço, via código, para registrar mais de um botão via código para uma classe que controle eventos.

  • Não sei se entendi sua dúvida, mas pelo que entendi, você quer que diversos botões, quando clicados, tenham o mesmo comportamento. É isso? O EventHandler é o equivalente aos Listeners do Swing onde o generics determinará de qual tipo se trata. No caso o EventHandler<ActionEvent> é o equivalente ao ActionListener.

    wellington.nogueira   08 de mai de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.