Pessoal to precisando de uma ajuda nessa, to desenvolvendo um programinha besta, que pega um texto e “criptografa” ele para outro texto, cada letra tem uma correspondente nesse novo alfabeto, entendem ? Problema eah que para uma letra ele funciona perfeitamente, quando coloco mais coisas escritas, ele so imprime a correspondente da ultima, e eu nao consegui entender o porque.
O codigo eah o seguinte
[code]import javax.swing.;
import java.awt.;
import java.awt.event.*;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.Iterator;
public class Cadastro extends JFrame
{
private JLabel lbEntrada, lbSaida;
private JTextArea txtEntrada, txtSaida;
private JButton btnTraduzir;
private JScrollPane srcPane;
public Cadastro() {
super("Traduzir");
Container tela = getContentPane();
tela.setLayout(new FlowLayout());
lbEntrada = new JLabel("Entrada");
lbSaida = new JLabel("Saida");
lbEntrada.setBounds(10, 10, 300, 15);
lbSaida.setBounds(40, 160,240,15);
lbEntrada.setForeground(Color.BLACK);
lbSaida.setForeground(Color.BLACK);
lbEntrada.setFont(new Font("Courier New", Font.BOLD, 14));
lbSaida.setFont(new Font("Courier New", Font.BOLD, 14));
tela.add(lbEntrada);
txtEntrada = new JTextArea(5,30);
tela.add(txtEntrada);
tela.add(lbSaida);
txtSaida = new JTextArea(5,30);
//srcPane = new JScrollPane(txtEntrada,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
//JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
//txtEntrada.setBounds(10,25,300,20);
//txtSaida.setBounds(10,150,300,20);
txtSaida.setEditable(false);
tela.add(txtSaida);
btnTraduzir = new JButton("Traduzir");
btnTraduzir.setBounds(320, 25, 100, 20);
tela.add(btnTraduzir);
setSize(450, 400);
setVisible(true);
setLocationRelativeTo(null);
btnTraduzir.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
onTraduzir();
}
private void onTraduzir() {
int i;
ArrayList texto = new ArrayList();
String text = txtEntrada.getText();
for(i=0; i<=text.length(); i++){
if("a".equals(text.substring(i))){
texto.add(new Character('3'));
}
else if("b".equals(text.substring(i))){
texto.add(new Character('r'));
}
else if("c".equals(text.substring(i))){
texto.add(new Character('q'));
}
else if("d".equals(text.substring(i))){
texto.add(new Character('z'));
}
else if("e".equals(text.substring(i))){
texto.add(new Character('0'));
}
else if("f".equals(text.substring(i))){
texto.add(new Character('s'));
}
else if("g".equals(text.substring(i))){
texto.add(new Character(' '));
}
else if("h".equals(text.substring(i))){
texto.add(new Character('l'));
}
else if("i".equals(text.substring(i))){
texto.add(new Character('7'));
}
else if("j".equals(text.substring(i))){
texto.add(new Character('b'));
}
else if("k".equals(text.substring(i))){
texto.add(new Character('n'));
}
else if("l".equals(text.substring(i))){
texto.add(new Character('a'));
}
else if("m".equals(text.substring(i))){
texto.add(new Character('9'));
}
else if("n".equals(text.substring(i))){
texto.add(new Character('g'));
}
else if("o".equals(text.substring(i))){
texto.add(new Character('2'));
}
else if("p".equals(text.substring(i))){
texto.add(new Character('c'));
}
else if("q".equals(text.substring(i))){
texto.add(new Character('i'));
}
else if("r".equals(text.substring(i))){
texto.add(new Character('8'));
}
else if("s".equals(text.substring(i))){
texto.add(new Character('6'));
}
else if("t".equals(text.substring(i))){
texto.add(new Character('4'));
}
else if("u".equals(text.substring(i))){
texto.add(new Character('5'));
}
else if("v".equals(text.substring(i))){
texto.add(new Character('m'));
}
else if("x".equals(text.substring(i))){
texto.add(new Character('e'));
}
else if("w".equals(text.substring(i))){
texto.add(new Character('o'));
}
else if("y".equals(text.substring(i))){
texto.add(new Character('t'));
}
else if("z".equals(text.substring(i))){
texto.add(new Character('k'));
}
else if(" ".equals(text.substring(i))){
texto.add(i,new Character('1'));
}
}
char[] valor = new char[texto.size()];
int n=0;
for(Iterator iter = texto.iterator(); iter.hasNext(); n++)
{
valor[n] = ((Character)iter.next()).charValue();
}
String str = new String(valor);
txtSaida.setText(str);
}
}
);
}
}
[/code]