Eduardo_Maranata10 10 de mar. de 2016
@FXML
private ComboBox CB_Acao
Jefinho2016 10 de mar. de 2016 1 like
Mas meu código está assim amigo e da o mesmo erro.
Eduardo_Maranata10 10 de mar. de 2016
Colocar a tua classe completa e o teu arquivo .fxml pra dar uma olhada
Jefinho2016 10 de mar. de 2016
FXML
<BorderPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller.controllerForm"> <center> <GridPane hgap="5" vgap="5" alignment="CENTER"> <Label text="Selecione uma ação:" GridPane.rowIndex="0" GridPane.columnIndex="0"/> <ComboBox fx:id="CB_Acao" onAction="#CheckComboBox" promptText="Selecionar" GridPane.rowIndex="1" GridPane.columnIndex="0"> <items> <FXCollections fx:factory="observableArrayList"> <String fx:value="Inserir Saldo"/> <String fx:value="Excluir Funcionário"/> <String fx:value="Excluir Serviço"/> </FXCollections> </items> </ComboBox> <GridPane alignment="CENTER" GridPane.rowIndex="2" hgap="5" vgap="5" gridLinesVisible="false" > <Label fx:id="Lbl_Saldo2" text="Novo Saldo:" GridPane.rowIndex="0" GridPane.columnIndex="0" /> <TextField fx:id="Txt_Adicionar_Sal" GridPane.columnIndex="0" GridPane.rowIndex="1" maxWidth="85"/> <HBox GridPane.columnIndex="0" GridPane.rowIndex="2" spacing="5"> <Button fx:id="Btn_Adicionar" text="Adicionar" onAction="#OnSaldo" /> <Button fx:id="Btn_Cancel" text="Cancelar"/> </HBox> </GridPane> </GridPane> </center> </BorderPane>
Classe
package Controller;
import javafx.fxml.FXML ;
import javafx.scene.control.Button ;
import javafx.scene.control.ComboBox ;
import javafx.scene.control.Label ;
import javafx.scene.control.TextField ;
/**
*
@author Jefersom Alves
*/
public class controllerForm {
@FXML
private ComboBox CB_Acao ;
@FXML
private Label Lbl_Saldo2 ;
@FXML
private TextField Txt_Adicionar_Sal ;
@FXML
private Button Btn_Adicionar ;
@FXML
private Button Btn_Cancel ;
@FXML
private void initialize() {
System . out . println ( "Controler formulário inicializado!" );
DisableSaldo ();
}
@FXML
private void CheckComboBox () {
if ( CB_Acao . getValue (). equals ( “ Inserir Saldo ” )) {
// Habilita inserir saldo ;
EnableSaldo ();
// Reseta a opção selecionada do ComboBox ;
// CB_Acao . setDisable ( true );
CB_Acao . getSelectionModel (). clearSelection ();
}
}
private void EnableSaldo () {
Lbl_Saldo2 . setDisable ( false );
Txt_Adicionar_Sal . setDisable ( false );
Btn_Adicionar . setDisable ( false );
Btn_Cancel . setDisable ( false );
}
//Disabilita a opção de preenchimento de saldo;
private void DisableSaldo () {
Lbl_Saldo2 . setDisable ( true );
Txt_Adicionar_Sal . setDisable ( true );
Btn_Adicionar . setDisable ( true );
Btn_Cancel . setDisable ( true );
}
//Reseta a opção selecionada do ComboBox;
private void LimpaAcaoCB() {
}
@FXML
private void OnSaldo () {
System . out . println ( "Saldo add: " + Txt_Adicionar_Sal . getText ());
Txt_Adicionar_Sal . clear ();
CB_Acao . setDisable ( false );
// Limpa as opções escolhidas ;
}
}
Eduardo_Maranata10 10 de mar. de 2016
O arquivo fxml estar completo ? é só isso .
Jefinho2016 10 de mar. de 2016
Aconteceu algum bug foi mal.
Agora sim, segue o arquivo FXML:
<BorderPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller.controllerForm"> <center> <GridPane hgap="5" vgap="5" alignment="CENTER"> <Label text="Selecione uma ação:" GridPane.rowIndex="0" GridPane.columnIndex="0"/> <ComboBox fx:id="CB_Acao" onAction="#CheckComboBox" promptText="Selecionar" GridPane.rowIndex="1" GridPane.columnIndex="0"> <items> <FXCollections fx:factory="observableArrayList"> <String fx:value="Inserir Saldo"/> <String fx:value="Excluir Funcionário"/> <String fx:value="Excluir Serviço"/> </FXCollections> </items> </ComboBox> <GridPane alignment="CENTER" GridPane.rowIndex="2" hgap="5" vgap="5" gridLinesVisible="false" > <Label fx:id="Lbl_Saldo2" text="Novo Saldo:" GridPane.rowIndex="0" GridPane.columnIndex="0" /> <TextField fx:id="Txt_Adicionar_Sal" GridPane.columnIndex="0" GridPane.rowIndex="1" maxWidth="85"/> <HBox GridPane.columnIndex="0" GridPane.rowIndex="2" spacing="5"> <Button fx:id="Btn_Adicionar" text="Adicionar" onAction="#OnSaldo" /> <Button fx:id="Btn_Cancel" text="Cancelar"/> </HBox> </GridPane> </GridPane> </center> </BorderPane>
Eduardo_Maranata10 10 de mar. de 2016
Tente fazer isso
@FXML
private ComboBox < String > CB_Acao ;
E preciso colocar um valor default para não dar o NullPointException
Jefinho2016 10 de mar. de 2016
Coloquei mas não deu.
private ComboBox<String> CB_Acao;
Mas continua com o mesmo erro.
Eduardo_Maranata10 11 de mar. de 2016
Fiz algo e deu certo
Baixar esse pacote
Link
E executa a classe Controller
Jefinho2016 11 de mar. de 2016
Tem certeza cara? Continua com o mesmo erro. Esse jeito que você fez acho que não precisava de alguns códigos como os que você colocou no controller, pois os mesmo estão na minha classe principal. Deixa eu te explicar um pouco mais. Esse aquivo que postei é de um teste, o meu arquivo original possui a classe principal que executa um login e depois do login, um formulário que contem esse combobox.
Não sei porque você colocou alguns códigos da classe principal na classe controller. Mas se não conseguir eu já fico grato pelo menos ter tentando.
Solucao aceita
Eduardo_Maranata10 11 de mar. de 2016 1 like
Amigo não dar dando certo por que você colocou o metodo na action do CheckBox e ele não tem nenhum valor quando ele é clicado. Por isso o NullPontException
Dentro da action do Button adicionar colocar assim :
Faça assim :
@FXML
private void OnSaldo () {
System . out . println ( "Saldo add: " + Txt_Adicionar_Sal . getText ());
Txt_Adicionar_Sal . clear ();
CB_Acao . setDisable ( false );
if ( CB_Acao . getValue (). equals ( "Inserir Saldo" )) {
// Habilita inserir saldo ;
EnableSaldo ();
// Reseta a opção selecionada do ComboBox ;
// CB_Acao . setDisable ( true );
// CB_Acao . getSelectionModel (). clearSelection ();
CB_Acao . setValue ( "Selecionar" );
}
}
Jefinho2016 11 de mar. de 2016 1 like
Ae caralho kkk. Valeu cara deu certinho. Muito obrigado, e tudo de bom pra você!