Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
leonardoadoado

[Resolvido] Problema - cannot find symbol

Recommended Posts

Esse código está com problemas. Alguém poderia me ajudar?

Está aparecendo a mensagem cannot find symbol

o problema começa aqui e acontece com todos os jformatteds.


package Componentes;
import javax.swing.*;
import java.awt.event.*;

public class rodarr
{
public static void main(String[]args)
{
JFrame tela = new JFrame();
tela.setBounds(0,0, 800,600);
try
{//o problema começa aqui e acontece com todos os jformatteds.

txtCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
txtData = new JFormattedTextField(new MaskFormatter("##/##/####"));
txtCNPJ = new JFormattedTextField(new MaskFormatter("###.###.###/####-##"));
}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null,"Essa porcaria deu problema");
}
tela.add(txtCPF);
tela.add(txtData);
tela.add(txtCNPJ);
tela.setLayout(null);
tela.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
tela.setVisible(true);
}
}

Editado por leonardoadoado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

Mude para:

JFormattedTextField txtCPF =  new JFormattedTextField(new MaskFormatter("###.###.###-##"));
JFormattedTextField txtData = new JFormattedTextField(new MaskFormatter("##/##/####"));
JFormattedTextField txtCNPJ = new JFormattedTextField(new MaskFormatter("###.###.###/####-##"));

Ou melhor ainda, defina os componentes antes do try e tente instância-los dentro dele.


public static void main(String[]args)
{
.
.
JFormattedTextField txtCPF;
try
{


txtCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
.
.

Enfim, não desenvolvo em java.

Seguem um site para consulta: http://www.java2s.com/Code/JavaAPI/CatalogJavaAPI.htm

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Não funcionou. Tentei as duas maneiras, deu o mesmo problema.

    Por favor, aguardo mais sugestões.

    Quando eu fiz dessa forma


    JFormattedTextField txtCPF;
    try
    {


    txtCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));

    Os erros diminuiram para três.

    rodar.java:15: error: cannot find symbol

    txtCPF= new JFormattedTextField (new MaskFormatter("###.###.###-##"));

    ^

    symbol: class MaskFormatter

    location: class rodar

    rodar.java:16: error: cannot find symbol

    txtData = new JFormattedTextField(new MaskFormatter("##/##/####"));

    ^

    symbol: class MaskFormatter

    location: class rodar

    rodar.java:17: error: cannot find symbol

    txtCNPJ = new JFormattedTextField(new MaskFormatter("###.###.###/####-##"));

    ^

    symbol: class MaskFormatter

    location: class rodar

    3 errors

    Aguardo ajuda.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Boa tarde.

    Tente algo como:

    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.text.*;

    public class rodarr
    {
    public static void main(String[]args)
    {
    JFrame tela = new JFrame();
    tela.setBounds(0,0, 800,600);

    JFormattedTextField txtCPF;
    JFormattedTextField txtData;
    JFormattedTextField txtCNPJ;

    try
    {
    txtCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
    txtData = new JFormattedTextField(new MaskFormatter("##/##/####"));
    txtCNPJ = new JFormattedTextField(new MaskFormatter("###.###.###/####-##"));

    tela.add(txtCPF);
    tela.add(txtData);
    tela.add(txtCNPJ);

    }
    catch (Exception erro)
    {
    JOptionPane.showMessageDialog(null,"Essa porcaria deu problema");
    }

    tela.setLayout(null);
    tela.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
    tela.setVisible(true);

    }
    }

    []'s

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Não funcionou. Tentei as duas maneiras, deu o mesmo problema

    Meio estranho não funcionar... lembrou de salvar o arquivo antes de compilar? :D

    E no caso, outra coisa que você vai precisar fazer é "inicializar as variáveis".

    Ficando mais ou menos assim:

    [color=#00007f]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]JFrame[color=#000000];[/color]
    [color=#00007f]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]JOptionPane[color=#000000];[/color]
    [color=#00007f]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]JFormattedTextField[color=#000000];[/color]
    [color=#00007f]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]JInternalFrame[color=#000000];[/color]
    [color=#00007f]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]text[color=#000000].[/color]MaskFormatter[color=#000000];[/color]
    [color=#00007f]import[/color] java[color=#000000].[/color]text[color=#000000].[/color]ParseException[color=#000000];[/color]
    [color=#0000c3]//import java.awt.event.*; //NÃO ESTÁ UTILIZANDO ESSE PACOTE.[/color]

    [color=#00007f]class[/color] rodarr [color=#000000]{[/color]
    [color=#00007f]public static[/color] [color=#540054][b]void[/b][/color] [color=#002a54]main[/color][color=#000000]([/color]String[color=#000000][][/color]args[color=#000000]) {[/color]
    JFrame tela [color=#000000]=[/color] [color=#00007f]new[/color] [color=#002a54]JFrame[/color][color=#000000]();[/color]
    tela[color=#000000].[/color][color=#002a54]setBounds[/color][color=#000000]([/color][color=#b85d00]0[/color][color=#000000],[/color][color=#b85d00]0[/color][color=#000000],[/color] [color=#b85d00]800[/color][color=#000000],[/color][color=#b85d00]600[/color][color=#000000]);[/color]
    JFormattedTextField txtCPF [color=#000000]=[/color] null[color=#000000];[/color] [color=#0000c3]//Esse null é só para inicializar a variável[/color]
    JFormattedTextField txtData [color=#000000]=[/color] null[color=#000000];[/color]
    JFormattedTextField txtCNPJ [color=#000000]=[/color] null[color=#000000];[/color]
    [color=#00007f]try[/color] [color=#000000]{[/color]
    txtCPF [color=#000000]=[/color] [color=#00007f]new[/color] [color=#002a54]JFormattedTextField[/color][color=#000000]([/color][color=#00007f]new[/color] [color=#002a54]MaskFormatter[/color][color=#000000]([/color][color=#d10000]"###.###.###-##"[/color][color=#000000]));[/color]
    txtData [color=#000000]=[/color] [color=#00007f]new[/color] [color=#002a54]JFormattedTextField[/color][color=#000000]([/color][color=#00007f]new[/color] [color=#002a54]MaskFormatter[/color][color=#000000]([/color][color=#d10000]"##/##/####"[/color][color=#000000]));[/color]
    txtCNPJ [color=#000000]=[/color] [color=#00007f]new[/color] [color=#002a54]JFormattedTextField[/color][color=#000000]([/color][color=#00007f]new[/color] [color=#002a54]MaskFormatter[/color][color=#000000]([/color][color=#d10000]"###.###.###/####-##"[/color][color=#000000]));[/color]
    [color=#000000]}[/color] [color=#00007f]catch[/color] [color=#000000]([/color]ParseException erro[color=#000000]) {[/color]
    JOptionPane[color=#000000].[/color][color=#002a54]showMessageDialog[/color][color=#000000]([/color]null[color=#000000],[/color][color=#d10000]"Erro ao tentar definir a máscara"[/color][color=#000000]);[/color]
    [color=#000000]}[/color] [color=#00007f]catch[/color] [color=#000000]([/color]Exception erro[color=#000000]) {[/color]
    JOptionPane[color=#000000].[/color][color=#002a54]showMessageDialog[/color][color=#000000]([/color]null[color=#000000],[/color][color=#d10000]"Deu alguma *****!!!"[/color][color=#000000]);[/color]
    [color=#000000]}[/color]
    tela[color=#000000].[/color][color=#002a54]add[/color][color=#000000]([/color]txtCPF[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#002a54]add[/color][color=#000000]([/color]txtData[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#002a54]add[/color][color=#000000]([/color]txtCNPJ[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#002a54]setLayout[/color][color=#000000]([/color]null[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#002a54]setDefaultCloseOperation[/color][color=#000000]([/color]JInternalFrame[color=#000000].[/color]DISPOSE_ON_CLOSE[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#002a54]setVisible[/color][color=#000000]([/color]true[color=#000000]);[/color]
    [color=#000000]}[/color]
    [color=#000000]}[/color]

    Obs.: O código de RafaelPucci também vai funcionar, mas acho não muito certo colocar dentro do try de outra coisa...

    PS: Esse carregamento individual da classes em vez de carregar todo o pacote, é só uma sugestão.

    Daí vai dando continuidade...

    No aguardo.

    Editado por Simon Viegas

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Consegui fazer compilar o código. No meu código, estava faltando o import javax.swing.text.MaskFormatter; os ADDs estavam fora do try e não estava dando certo fora do try (percebi que com um catch a mais, funciona colocar fora do try assim como percebi no codigo de simon, mas preferi deixar tudo dentro do try mesmo). A outra questão é que mesmo se colocar dentro do try ou não, estava aparecendo uma tela sem nada por que estava faltando o comando setbounds. Esse código ai deu certo. valeu e abraço a todos.


    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.text.MaskFormatter;

    public class rodar
    {
    public static void main(String[]args)
    {
    JFrame tela = new JFrame();
    tela.setBounds(0,0, 800,600);

    JFormattedTextField txtData;
    JFormattedTextField txtCNPJ;
    try
    {
    JFormattedTextField txtCPF = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
    txtData = new JFormattedTextField(new MaskFormatter("##/##/####"));
    // txtCNPJ = new JFormattedTextField(new MaskFormatter("###.###.###/####-##"));

    txtCPF.setBounds(0,100, 100,30);
    txtData.setBounds(0,200, 80,30);
    tela.add(txtCPF);
    tela.add(txtData);
    tela.setLayout(null);
    tela.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
    tela.setVisible(true);

    }
    catch (Exception erro)
    {
    JOptionPane.showMessageDialog(null,"Essa porcaria deu problema");
    }

    }
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    A fim de complementação, estamos reabrindo este tópico!

    Olá leonardoadoado, só complementando...

    No meu código, estava faltando o import javax.swing.text.MaskFormatter;

    Foi...

    os ADDs estavam fora do try e não estava dando certo fora do try (percebi que com um catch a mais, funciona colocar fora do try assim como percebi no codigo de simon, mas preferi deixar tudo dentro do try mesmo).

    O "funcionar" não tem relação com a "quantidade de catch", ou seja, a questão foi outra (comento mais abaixo). Colocar esse outro cacth a mais só está servindo para "tratar os possíveis erros de formas diferentes", ou seja, se o erro der na construção do objeto lá no "new MaskFormatter(), então toma determinada atitude, senão trato o erro de outra forma (um erro genérico que no caso não foi no tal new MaskFormatter()).

    Então, veja como está definido o comando:

    MaskFormatter

    public MaskFormatter(String mask)
    throws ParseException

    Creates a MaskFormatter with the specified mask. A ParseException will be thrown if mask is an invalid mask.

    [COLOR="Red"][B]Throws:
    ParseException - if mask does not contain valid mask characters[/B][/COLOR]

    Fonte

    Link direto

    ATENÇÃO: Então, na minha opinião, não acho correto inserir todo o trecho dentro do try/catch já que o erro "só pode ocorrer ao instanciar o objeto de MaskFormatter (no caso, ao chamar o construtor)". Pois, se for assim, porque não colocar todo o código dentro do try/catch??? Ou melhor, porque todos os código já não ficam dentro de um??? Sacou?? Logo, só deve ser tratado, o que deve ser tratado...

    Seu código ficaria mais ou menos assim:

    [color=#0000ff]import[/color] javax[color=#000000].[/color]swing[color=#000000].*;[/color]
    [color=#0000ff]import[/color] java[color=#000000].[/color]awt[color=#000000].[/color]event[color=#000000].*;[/color]
    [color=#0000ff]import[/color] javax[color=#000000].[/color]swing[color=#000000].[/color]text[color=#000000].*;[/color]
    [color=#0000ff]import[/color] java[color=#000000].[/color]text[color=#000000].*;[/color]
    [color=#0000ff]class[/color] rodar
    [color=#000000]{[/color]
    [color=#0000ff]public static[/color] [color=#540054][b]void[/b][/color] [color=#00007f]main[/color][color=#000000]([/color]String[color=#000000][][/color]args[color=#000000])[/color]
    [color=#000000]{[/color]
    JFrame tela [color=#000000]=[/color] [color=#0000ff]new[/color] [color=#00007f]JFrame[/color][color=#000000]();[/color]
    tela[color=#000000].[/color][color=#00007f]setBounds[/color][color=#000000]([/color][color=#ffa500]0[/color][color=#000000],[/color][color=#ffa500]0[/color][color=#000000],[/color] [color=#ffa500]800[/color][color=#000000],[/color][color=#ffa500]600[/color][color=#000000]);[/color]
    [color=#006400]/*[/color]
    [color=#006400] * Como os objetos abaixo estão sendo INICIALIZADOS dentro do try e[/color]
    [color=#006400] * adicionado a tela fora dele (escopo diferente), o compilador exige[/color]
    [color=#006400] * que o objeto seja pré-inicializado (no escopo de tela ele já tem que está[/color]
    [color=#006400] * inicializado independente dos outros escopos), mas como justamente a[/color]
    [color=#006400] * INSTANCIAÇÃO (e por consequencia a INICIALIZAÇÃO) é que precisa do try,[/color]
    [color=#006400] * logo simplesmente atribuir um nulL.[/color]
    [color=#006400] *[/color]
    [color=#006400] * RESUMIDAMENTE[/color]
    [color=#006400] *[/color]
    [color=#006400] * Está INICIANDO no escopo de TELA e INSTANCIANDO dentro do try, já que o Java[/color]
    [color=#006400] * exige esse try ao dar o new MaskFormatter().[/color]
    [color=#006400] *[/color]
    [color=#006400] **/[/color]
    JFormattedTextField txtData [color=#000000]=[/color] null[color=#000000];[/color]
    JFormattedTextField txtCNPJ [color=#000000]=[/color] null[color=#000000];[/color]
    JFormattedTextField txtCPF [color=#000000]=[/color] null[color=#000000];[/color]
    [color=#0000ff]try[/color]
    [color=#000000]{[/color]
    txtCPF [color=#000000]=[/color] [color=#0000ff]new[/color] [color=#00007f]JFormattedTextField[/color][color=#000000]([/color][color=#0000ff]new[/color] [color=#00007f]MaskFormatter[/color][color=#000000]([/color][color=#483d8b]"###.###.###-##"[/color][color=#000000]));[/color]
    txtData [color=#000000]=[/color] [color=#0000ff]new[/color] [color=#00007f]JFormattedTextField[/color][color=#000000]([/color][color=#0000ff]new[/color] [color=#00007f]MaskFormatter[/color][color=#000000]([/color][color=#483d8b]"##/##/####"[/color][color=#000000]));[/color]
    txtCNPJ [color=#000000]=[/color] [color=#0000ff]new[/color] [color=#00007f]JFormattedTextField[/color][color=#000000]([/color][color=#0000ff]new[/color] [color=#00007f]MaskFormatter[/color][color=#000000]([/color][color=#483d8b]"###.###.###/####-##"[/color][color=#000000]));[/color]
    [color=#000000]}[/color]
    [color=#0000ff]catch[/color] [color=#000000]([/color]ParseException erro[color=#000000])[/color]
    [color=#000000]{[/color]
    JOptionPane[color=#000000].[/color][color=#00007f]showMessageDialog[/color][color=#000000]([/color]null[color=#000000],[/color][color=#483d8b]"Essa porcaria deu problema"[/color][color=#000000]);[/color]
    [color=#000000]}[/color]
    txtCPF[color=#000000].[/color][color=#00007f]setBounds[/color][color=#000000]([/color][color=#ffa500]0[/color][color=#000000],[/color][color=#ffa500]100[/color][color=#000000],[/color][color=#ffa500]100[/color][color=#000000],[/color][color=#ffa500]30[/color][color=#000000]);[/color]
    txtData[color=#000000].[/color][color=#00007f]setBounds[/color][color=#000000]([/color][color=#ffa500]0[/color][color=#000000],[/color][color=#ffa500]200[/color][color=#000000],[/color][color=#ffa500]80[/color][color=#000000],[/color][color=#ffa500]30[/color][color=#000000]);[/color]
    txtCNPJ[color=#000000].[/color][color=#00007f]setBounds[/color][color=#000000]([/color][color=#ffa500]0[/color][color=#000000],[/color][color=#ffa500]300[/color][color=#000000],[/color][color=#ffa500]130[/color][color=#000000],[/color][color=#ffa500]30[/color][color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]add[/color][color=#000000]([/color]txtCPF[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]add[/color][color=#000000]([/color]txtData[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]add[/color][color=#000000]([/color]txtCNPJ[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]setLayout[/color][color=#000000]([/color]null[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]setDefaultCloseOperation[/color][color=#000000]([/color]JInternalFrame[color=#000000].[/color]DISPOSE_ON_CLOSE[color=#000000]);[/color]
    tela[color=#000000].[/color][color=#00007f]setVisible[/color][color=#000000]([/color]true[color=#000000]);[/color]
    [color=#000000]}[/color]
    [color=#000000]}[/color]

    A outra questão é que mesmo se colocar dentro do try ou não, estava aparecendo uma tela sem nada por que estava faltando o comando setbounds.

    Isso, no caso o tipo de layout definido na tela está como null, daí foi necessário definir a posição (e tamanho) para cada componente ao ser inserido nela.

    No aguardo.

    Editado por Simon Viegas

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.
    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×