[Resolvido] Aprendendo internacionalizar, sofrendo pois esta tudo dando errado 😢

Bom dia pessoas!

preciso de uma ajuda, e acredito que seja básico meu problema, mas é algo que eu não consegui resolver sozinho.
(e para ajudar faltei na aula de internacionalização e me ferrei :frowning: (saúde me quer de DP :cry: )

vamos a pergunta!

Não sei internacionalizar, já li os topicos e fiz buscas no google e nada que me ajuda-se.
E para piorar a classe que o professor passou não funciona.

PS: O codigo da classe estará mais abaixo, caso queira me ensinar sem ler algumas coisas basicas que perguntarei pode ir direto para o codigo-fonte.

pergunta simples 1) os “.properties” tem que ser colocados num bloco de notas e salvos da seguinte forma:
<país>.properties //Sem ‘<’ e ‘>’

salvei o en_US num bloco de notas (com mais duas linguagens, (pt_BR e fr_FR)), e coloquei dentro de uma pasta que esta a classe “TelaExemplo”.
OBS: tem uma pasta chamada “inter”, este INTER seria de internacionalização e dentro dela tem os mesmos arquivos .properties.

a classe esta com os comentarios do meu professor, mas mesmo com eles eu não consegui fazer funcionar e bem… estou aqui pedindo uma ajuda dos “manos” e “manas” de JAVA.
AGRADEÇO DESDE JÁ!! rsrs
----------------Código-fonte----------------

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class TelaExemplo extends JFrame implements ActionListener
{

private JButton bt;
private JTextField tx;
private JLabel rt;
private ResourceBundle bn = null;

public TelaExemplo()
{ // Menu simples de escolha de idioma

int op = Integer.parseInt( JOptionPane.showInputDialog("Idioma - Language - Langue\n\n1- Português\n2- English\n3- Française\n "));

// Carga dos arquivos de internacionalização
switch(op)
{
case 1: bn = ResourceBundle.getBundle(“ex1”, new Locale(“pt”, “BR”));
break;

  case 2:  bn = ResourceBundle.getBundle("ex1", Locale.US);
  break;

  case 3:  bn = ResourceBundle.getBundle("ex1", Locale.FRANCE);
  break;

  default: bn = ResourceBundle.getBundle("ex1");
  break;

}

// Escolhe Layout do conteiner
Container cx = getContentPane();
cx.setLayout(new FlowLayout());

// Instânciação dos objetos
bt = new JButton(bn.getString(“tela1.botao.calcular”));
rt = new JLabel(bn.getString(“tela1.rotulo.valor”) + “:”);
tx = new JTextField(10);

// Inclusao no container
cx.add(rt);
cx.add(tx);
cx.add(bt);
// Registro no listener dos objetos controlados

bt.addActionListener(this);
// Ajustes finais do frame

setTitle(bn.getString(“tela1.titulo”));
setSize(193, 104);
setVisible(true);

}

// Implementacao do metodo da interface ActionListener

public void actionPerformed(ActionEvent e)
{

  if (tx.getText().length() == 0)
  {
     JOptionPane.showMessageDialog(null,bn.getString("mensagem.valor.nulo"),bn.getString("tela1.erro.titulo"),JOptionPane.ERROR_MESSAGE);
  }

}

public static void main(String args[])
{

  TelaExemplo exemplo = new TelaExemplo();
  exemplo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

Já tentou colocar o nome do arquivo conforme o que você tem no seu diretório?

Lembrando que “Ex1” <> “ex1”

:wink:

1 curtida

guiVirtuoso, obrigado pela resposta, mas o problema estava no .properties

eu coloquei os dados no bloco de notas e salvei com o nome.properties, só que, ele salvou como .TXT (na Parte de TIPO na janela ‘Salvar Como’).

este erro simples me causou um tempo perdido e nervoso buscando a resposta em vários canais de ajuda :smiley:
obrigado mesmo!

:joy: :joy: :joy:

Regra p/ vida… Sempre desmarcar a caixa “Ocultar extensão de arquivos de tipos conhecidos”

Abs

1 curtida