Ir ao conteúdo
  • Cadastre-se

Java Como modificar classe do java


Posts recomendados

Olá pessoal, tudo bem com vocês? Gostaria de saber se alguém poderia me ajudar? Estou criando uma aplicação Javafx porém estou reutilizando códigos de uma aplicação Swing ai estou com sem saber o que fazer para mudar o código, como vocês podem ver abaixo :

public void LimpaTela(JPanel container) {
        Component components[] = container.getComponents();
        for (Component component : components) {
            if (component instanceof JTextField) {
                ((JTextField) component).setText(null);
            }
        }
    }

Já o atual fica exibindo erro e logo abaixo está a hierarquia da tela que eu quero limpar todos os campos ao cadastrar o usuário1337962896_CapturadeTela(27).thumb.png.b308bba3db5631d3d8c6cba802f1f681.png227491841_CapturadeTela(26).thumb.png.20cc4197a489599286d9d156b2f7319e.png :

Link para o comentário
Compartilhar em outros sites

Pelo que eu sei, Swing não é compatível com JavaFX, pois elas trabalham de forma diferente. Se você está "se baseando" em um código Swing, você vai precisar "traduzir" ele para trabalhar em JavaFX. Tente executar esse código e veja se atende às necessidades:

package apagar;

import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;

public class Utilitarios {
    public void limparTela(Pane pane) {
        pane.getChildren().forEach(node -> {
            if (node instanceof TextField) {
                ((TextField) node).clear();
            }
        });
    }
}

 

Link para o comentário
Compartilhar em outros sites

Deveria funcionar, pois AnchorPane extende Pane, logo AnchorPane é um Pane.

 

Como assim o código não rodou? O que aconteceu? Algum erro de compilação?

adicionado 7 minutos depois

Dê uma olhada:

AnchorPane anchorPane = new AnchorPane();
    anchorPane.getChildren().forEach(node -> {
        if (node instanceof TextField){
            ((TextField)node).clear();
        }
    });

Isso compila sem problema nenhum.

Link para o comentário
Compartilhar em outros sites

@AdrianoSiqueira Aff mano, foi erro meu🤦‍♂️ Na última vez que rodei o código com o arquivo FXML não troquei o Pane pelo AnchorPane ai ele não limpou os campos porém troquei para o AnchorPane e ele funcionou, ai o código ficou assim:

package br.com.hipermercado.utilitarios;

import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;

public class Utilitario {
 public void limparTela(AnchorPane pane) {
        pane.getChildren().forEach(node -> {
            if (node instanceof TextField) {
                ((TextField) node).clear();
            }
        });
    }    
}

E coloquei o seguinte comando no evento de clique do botão:

@FXML
    private void limpar_tela(ActionEvent event) {
        new Utilitario().limparTela(anchorPane);
    }

Muito obrigado mano pela ajuda👏 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...