Ir ao conteúdo
  • Cadastre-se

Declarações não reconhecidas - JavaFX


Posts recomendados

Estou criando um programa com JavaFX, mas constantemente aparece que não estou declarando meus Labels e Buttons no FXMLDocumentController(por isso, as ações dos meus botões não estão sendo executadas), porém estão declarados, já verifiquei tudo e não consigo achar o erro, alguem pode me ajudar?

 

Seguem os códigos:

.java

package quantofaltaparaoenemjavafx;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class QuantoFaltaParaOENEMJavaFX extends Application {
    
    @Override
    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
        
        Scene scene = new Scene(root);
        
        stage.setScene(scene);
        stage.show();
    }

  
    public static void main(String[] args) {
        launch(args);
    }
    
}

FXMLDocumentController

 

package quantofaltaparaoenemjavafx;

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

public class FXMLDocumentController implements Initializable {
    
    @FXML
    private Button btnHoras;
    private Button btnDias;
    private Button btnSemanas;
    private Label minimo;
    private Label maximo;
    
    @FXML
    private void clicouBtnH(ActionEvent event) {
     GregorianCalendar dataAtual = new GregorianCalendar();
     GregorianCalendar dataEstimadaMin = new GregorianCalendar();
     GregorianCalendar dataEstimadaMax = new GregorianCalendar();
     
     
     dataEstimadaMin.set(GregorianCalendar.MONTH, 10);
     dataEstimadaMin.set(GregorianCalendar.DATE, 20);
     
     dataEstimadaMax.set(GregorianCalendar.MONTH, 11);
     dataEstimadaMax.set(GregorianCalendar.DATE, 10);
     
     int diaAtual = dataAtual.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMin = dataEstimadaMin.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMax = dataEstimadaMax.get(GregorianCalendar.DAY_OF_YEAR);
     
     int diasMinimos = diaProvaMin - diaAtual;
     int diasMaximos = diaProvaMax - diaAtual;
     
     int horasMinimas = diasMinimos * 24;
     int horasMaximas = diasMaximos * 24;
     
        
      minimo.setText(horasMinimas + " horas no mínimo");
      maximo.setText(horasMaximas + " horas no maximo");   
    }
    
    @FXML
    
    private void clicouBtnD(ActionEvent event) {
     GregorianCalendar dataAtual = new GregorianCalendar();
     GregorianCalendar dataEstimadaMin = new GregorianCalendar();
     GregorianCalendar dataEstimadaMax = new GregorianCalendar();
     
     
     dataEstimadaMin.set(GregorianCalendar.MONTH, 10);
     dataEstimadaMin.set(GregorianCalendar.DATE, 20);
     
     dataEstimadaMax.set(GregorianCalendar.MONTH, 11);
     dataEstimadaMax.set(GregorianCalendar.DATE, 10);
     
     int diaAtual = dataAtual.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMin = dataEstimadaMin.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMax = dataEstimadaMax.get(GregorianCalendar.DAY_OF_YEAR);
     
     int diasMinimos = diaProvaMin - diaAtual;
     int diasMaximos = diaProvaMax - diaAtual;
     
        
      minimo.setText(diasMinimos + " dias no mínimo");
      maximo.setText(diasMaximos + " dias no maximo");
    }
    
    @FXML
    
    private void clicouBtnS(ActionEvent event) {
    GregorianCalendar dataAtual = new GregorianCalendar();
     GregorianCalendar dataEstimadaMin = new GregorianCalendar();
     GregorianCalendar dataEstimadaMax = new GregorianCalendar();
     
     
     dataEstimadaMin.set(GregorianCalendar.MONTH, 10);
     dataEstimadaMin.set(GregorianCalendar.DATE, 20);
     
     dataEstimadaMax.set(GregorianCalendar.MONTH, 11);
     dataEstimadaMax.set(GregorianCalendar.DATE, 10);
     
     int diaAtual = dataAtual.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMin = dataEstimadaMin.get(GregorianCalendar.DAY_OF_YEAR);
     int diaProvaMax = dataEstimadaMax.get(GregorianCalendar.DAY_OF_YEAR);
     
     int diasMinimos = diaProvaMin - diaAtual;
     int diasMaximos = diaProvaMax - diaAtual;
     
     float semanasMinimas = diasMinimos / 7;
     float semanasMaximas = diasMaximos / 7;
     
        
      minimo.setText(semanasMinimas + " semanas no mínimo");
      maximo.setText(semanasMaximas + " semanas no maximo");       
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
     
    }    
    
}

.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.image.*?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="450.0" prefWidth="510.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="quantofaltaparaoenemjavafx.FXMLDocumentController">
   <children>
      <ImageView fitHeight="99.0" fitWidth="284.0" layoutX="125.0" layoutY="37.0" pickOnBounds="true" preserveRatio="true">
         <image>
            <Image url="@../Imagens/logoenem.png" />
         </image>
      </ImageView>
      <Button fx:id="btnHoras" layoutX="83.0" layoutY="210.0" mnemonicParsing="false" onAction="#clicouBtnH" text="Horas" />
      <Button fx:id="btnDias" layoutX="231.0" layoutY="210.0" mnemonicParsing="false" onAction="#clicouBtnD" text="Dias" />
      <Button fx:id="btnSemanas" layoutX="367.0" layoutY="210.0" mnemonicParsing="false" onAction="#clicouBtnS" text="Semanas" />
      <Label fx:id="maximo" layoutX="104.0" layoutY="270.0" prefHeight="31.0" prefWidth="304.0" />
      <Label fx:id="minimo" layoutX="104.0" layoutY="321.0" prefHeight="31.0" prefWidth="304.0" />
   </children>
</AnchorPane>

 

Link para o comentário
Compartilhar em outros sites

No java FX, antes de mencionar/declarar qualquer Node você deve começar com @FXML, mude seu código de:

 

    @FXML
    private Button btnHoras;
    private Button btnDias;
    private Button btnSemanas;
    private Label minimo;
    private Label maximo;

para

    @FXML
    private Button btnHoras;
    @FXML
    private Button btnDias;
    @FXML
    private Button btnSemanas;
    @FXML
    private Label minimo;
    @FXML
    private Label maximo;

Boa sorte :)

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...