Ir ao conteúdo
  • Cadastre-se

Problema - cannot find symbol


leonardoadoado

Posts recomendados

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);
}
}

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
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.

Link para o comentário
Compartilhar em outros sites

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");
}

}
}

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para 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...