Java fx

Modelo
oi boa tarde.
queria saber como faço isso no java fx, alguem help?

Isso o quê exatamente? Um botão com 3 possíveis ações? Uma lista de ações selecionáveis, com um botão pra confirmar? 3 botões, cada um fazendo uma coisa diferente?

Abraço.

um botão q no primeiro clik adicione a variável A n, no segundo clik adicione a variável b e no terceiro a variável c!

int acao = 1;

if (acao==1){
  //Primeira ação
  ação = 2;
} else if (acao==2{
  //Segunda ação
  ação = 3;
} else if (acao==3){
  //Terceira ação
  acao=1;
}

assim eu to ligado, mas não consigo usando o evento do botão.

Vc tem que ser mais específico então.

botao.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                //Lógica
            }
        });

tentei fazer assim… mas ai não consegui chamar o segundo evento para o mesmo botão.
package textebotoes;

    import java.net.URL;
    import java.util.ResourceBundle;
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.fxml.Initializable;

    public class FXMLDocumentController implements Initializable {
       
     
    class Primeira_classe{
      
    public String p1 ="A";

    public  String p2 ="B";    
       
    }

         
      
          class Primeiro_clik{ 
        @FXML
        public void handleButtonAction (ActionEvent event ) {
            
    Primeira_classe per1 = new Primeira_classe();

          if(per1.p1.equals("A")){
            System.out.println("O RESULTADO É = i = "+per1.p1);     
            Segundo_clik sss =new Segundo_clik();
            //  TENTEI CHAMAR O SEGUNDO EVENTO PARA O MESMO BOTÃO  ...FIZ ALGO ERRADO...
            sss.handleButtonAction(ActionEvent event2);
            
          }}
          }
    class Segundo_clik{
       
        @FXML
        public void handleButtonAction (ActionEvent event2 ) {
            
    Primeira_classe per1 = new Primeira_classe();


          if(per1.p2.equals("B")){
            System.out.println("O RESULTADO É = "+per1.p2);     
          }}
        
    }
        
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            // TODO
        } 
    }

É pra usar essa lógica em um método

so q se eu fizer assim o programa vai ler as 3 ações de um x só com um único clik no botão, meu problema maior é separar isso em cliks no botão. para cada cliK entra uma variável, tenho q dar 3 clliks.

Cara…???

Olha, vamos lá. Acho que você não entendeu a lógica, é como se você estivesse usando um boolean, nesse caso não se aplica, pois são 3 opções diferentes.

Então pensa comigo, você quer que UM botão seja capaz de realizar TRÊS ações distintas, OK, eu entendi isso. Só que você precisa de uma condição pra isso funcionar.

Você ao menos tentou seguir o exemplo que eu te passei?

    if (acao == 1) {
        //Primeira ação
        acao = 2;
        jLabel1.setText("Primeiro, A");
    } else if (acao == 2) {
        //Segunda ação
        acao = 3;
        jLabel1.setText("Segundo, B");
    } else if (acao == 3) {
        //Terceira ação
        acao = 1;
        jLabel1.setText("Terceiro, C");
    }
1 curtida

hola brother fia assim … mas com um clik ele rodas as 3 opções. tentei usar um returne; mas tb não deu …

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;

public class FXMLDocumentController implements Initializable {
    
    @FXML
    private Label label;
    
    public class Respostas{
        
        String r1 ="A";
        String r2 ="B";
        String r3 ="C";
    }  
    @FXML
    private void handleButtonAction(ActionEvent event) {
        Respostas respostas =new Respostas();
        if(respostas.r1.equals("A")){
            System.out.println("Classe Certa");
      }
        else{
                  System.out.println("Errou sua Classe");
        }
//.................................
        if(respostas.r2.equals("A")){
            System.out.println("Classe Certa");
      }
        else{
            System.out.println("Errou sua Classe");
        }
//..................................
        if(respostas.r3.equals("A")){
            System.out.println("Classe Certa");
        }
else{
                  System.out.println("Errou sua Classe");
        } 
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    
    
}

Cara, vc nao fez o que eu mandei ali em cima kkkkk

vc tem que tentar o que eu te mandei, aí depois vc faz a implementação de como vc quiser!!! Não tem segredo, é só copiar e colar o código dentro do seu botão.

int acao = 1;

if (acao == 1) {
        //Primeira ação
        acao = 2;
        System.out.println("Resposta: A");
    } else if (acao == 2) {
        //Segunda ação
        acao = 3;
        System.out.println("Resposta: B");
    } else if (acao == 3) {
        //Terceira ação
        acao = 1;
        System.out.println("Resposta: C");
    }

Esse é literalmente o código que vc precisa!!

kkkkkkk depois que pascei para orientação a objetos comecei a trocar sal por açúcar no java
deu certo brother obrigado escupa ae qualquer coisa, nossa tao simples e eu me matando.

    int acao=1;
    @FXML
    public void handleButtonAction(ActionEvent event) {
if (acao == 1) {
        //Primeira ação
        acao = 2;
        System.out.println("Resposta: A");
    } else if (acao == 2) {
        //Segunda ação
        acao = 3;
        System.out.println("Resposta: B");
    } else if (acao == 3) {
        //Terceira ação
        acao = 4;
        System.out.println("Resposta: C");
    }}
1 curtida

Que isso, faz parte! Se você quiser que a resposta volte pra o estado inicial, é só trocar o 4 pelo 1

humm valew :+1::+1: