Aprenda Java FX

  • Página Inicial
  • Contato!
  • Tudo sobre Java FX Parte 1!
  • Tudo sobre Java FX Parte 2!
  • Tudo sobre Java FX Parte 2

    Alert

    Para criar um aplicativo com Alert, crie um JavaFX com FXML, e coloque um botão, no botão coloque o onAction e uma ID (por exemplo btnAlert).

    No Controller dele, coloque o objeto Alert, dessa forma:

    
    public class FXMLDocumentController implements Initializable {
        
        @FXML
        private Button btnAlert;
        
        @FXML
        private void clicouBotao(ActionEvent event) {
            Alert al = new Alert(Alert.AlertType.ERROR); // Isso cria o alerta, importe javafx.scene.control.Alert
            al.setTitle("Título do Alerta"); // Isso define o título da janela.
            al.setHeaderText("Título do Cabeçalho"); // Isso define o título do cabeçalho
            al.setContentText("Conteúdo do Alerta"); // Isso define o conteúdo do alerta.
            al.show(); // Isso exibe o alerta.
        }
        
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            // TODO
        }     
    }
    
    

    PS: No lugar do ERROR, temos também outras opções, como INFORMATION e WARNING

    ListViews

    Crie um novo projeto JavaFX com FXML, clique no FXML para abrir o Scene Builder e crie o Anchor Pane e coloque um ListView nele, coloque no lado esquerdo do frame, e coloque na ListView a id categorias.

    Copie também a classe Categoria, criada na aula de Combobox (verifique se ela tem o método toString(), senão o crie).

    Coloque esse código no document controller do projeto:

    
    public class FXMLDocumentController implements Initializable {
        
        @FXML
        private ListView<Categoria> categorias; // Importar javafx.scene.control.ListView
        
        @FXML
        private List<Categoria> cats = new ArrayList<>(); // Importe
        
        @FXML
        private ObservableList<Categoria> obsCats; // Importe
        
        public void carregarCategorias() {
            Categoria categoria1 = new Categoria(1, "Bebidas"); // Importe do seu pacote
            Categoria categoria2 = new Categoria(2, "Comidas");
    
            cats.add(categoria1);
            cats.add(categoria2);
    
            obsCats = FXCollections.observableArrayList(cats); // Importe
    
            categorias.setItems(obsCats);
        } 
        
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            carregarCategorias(); // Invocação do método criado.
        }      
    }
    
    

    Pode ver que a maior parte do código é bem parecida com o que criamos em Combobox.

    Spinner

    Abra um novo projeto Java FX e coloque nele um spinner e um botão nele, e coloque suas respectivas IDs.

    Altere o documento FXML dessa forma (inclua no cabeçalho <?import javafx.scene.control.SpinnerValueFactory.IntegerSpinnerValueFactory?>):

    
    <Spinner fx:id="spNum" editable="true">
        <valueFactory>
            <SpinnerValueFactory.IntegerSpinnerValueFactory/>
        </valueFactory>
    </Spinner>
    
    

    Altere a função em DocumentController assim:

    
    public class FXMLDocumentController implements Initializable {
        
        @FXML
        private Spinner spNum; // Importe
        
        @FXML
        private void iniciarSpinner() {
            spNum.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 10, 0)); // mínimo, máximo e inicial, Importe
        }
        
        @FXML
        private void clicouBotao(ActionEvent event) {
            System.out.println(spNum.getValue()); // Saída do Spinner
        }
        
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            iniciarSpinner();
        }      
    }
    
    

    Slider

    Num novo projeto, coloque um slider e um label com suas respectivas IDs (sliNum e lblNum), no slider, coloque os valores mínimos, máximos e padrão como 0, 100 e 0.

    No código do DocumentController, coloque isso:

    
    public class FXMLDocumentController implements Initializable {
        
        @FXML
        private Label lblNum; // Importe
        
        @FXML
        private Slider sliNum; // Importe
        
        @Override
        public void initialize(URL url, ResourceBundle rb) {
            sliNum.addEventFilter(MouseEvent.MOUSE_DRAGGED, event ->
                lblNum.setText(Integer.toString((int)sliNum.getValue()))
            ); // Isso muda o valor ao arrastar o slider, importe javafx.scene.input.MouseEvent
        }
    }
    
    

    Menus em Java FX

    Abra um novo projeto Java FX e vá nos controls e coloque nele um MenuBar, com os menus arquivo e usuários. Podemos editar e excluir esses itens e documents, ou adicionar mais colocando Menu.

    Para colocar itens nos menus, vamos em menu e colocamos o MenuItem, arrastando ele pro menu em documents. Em arquivo colocaremos sair, e em usuários colocaremos os itens cadastrar, alterar, excluir e pesquisar.

    PS: Da mesma forma que os itens, podemos colocar separadores nos menus.

    No evento do item sair, colocamos a id itSair, o evento clicouItem, e no FXMLDocumentController, colocamos apenas isso:

    
    @FXML
    private void clicouItem(ActionEvent event) {
        Alert al = new Alert(Alert.AlertType.WARNING); // Importe javafx.scene.control.Alert
    
        al.setTitle("Aviso");
        al.setHeaderText("Aviso do Sistema!");
        al.setContentText("O Aplicativo será Fechado!");
        al.show();
    
        al.setOnCloseRequest((e) -> Platform.exit()); // Importe javafx.application.Platform     
    }