JTextField ler String e a String virar varias Variaveis?

2 respostas
shogogan

bem… eu estou fazendo uma Planilha eletronica…
nela tem uma grade 5x5 desde A1 até E5…
agora eu queria saber se alguem pode me falar um geito de transformar uma String em Varias Variaveis

exemplo:
JTextField com escrito A1 + A2
fazer essa conta que esta no field… porem ta tenso aqui. Como sou novo em Java [mecho em java faz uma semana mais ou menos] eu não sei como fazer isso.

Segue abaixo o Código da Planilha

import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JFileChooser;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.border.LineBorder;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Planilha extends JFrame implements ActionListener{
	JMenuBar Bar;
	JMenu Arquivo;
	JMenuItem Save,Load,New,Exit;
	JTextField Texto1;
	JTextPane TA1,TA2,TA3,TA4,TA5,TA6,TA7,TA8,TA9,TA10,TA11,TA12,TA13,TA14,TA15,TB1,TB2,TB3,TB4,TB5,TB6,TB7,TB8,TB9,TB10,TB11,TB12,TB13,TB14,TB15,TC1,TC2,TC3,TC4,TC5,TC6,TC7,TC8,TC9,TC10,TC11,TC12,TC13,TC14,TC15,TD1,TD2,TD3,TD4,TD5,TD6,TD7,TD8,TD9,TD10,TD11,TD12,TD13,TD14,TD15,TE1,TE2,TE3,TE4,TE5,TE6,TE7,TE8,TE9,TE10,TE11,TE12,TE13,TE14,TE15;
	JButton Calcular;
	JPanel a,b;
	Container c;
	JFileChooser LoadF = new JFileChooser();
	JFileChooser SaveF = new JFileChooser();
	public Planilha(){
		//News
		Bar = new JMenuBar();
		Arquivo = new JMenu("Arquivo");
		Save = new JMenuItem("Salvar");
		Load = new JMenuItem("Abrir");
		New = new JMenuItem("Novo");
		Exit = new JMenuItem("Sair");
		Texto1 = new JTextField("");
		Calcular = new JButton("Calcular");
		TA1 = new JTextPane();
		TA2 = new JTextPane();
		TA3 = new JTextPane();
		TA4 = new JTextPane();
		TA5 = new JTextPane();
		TA6 = new JTextPane();
		TA7 = new JTextPane();
		TA8 = new JTextPane();
		TA9 = new JTextPane();
		TA10 = new JTextPane();
		TA11 = new JTextPane();
		TA12 = new JTextPane();
		TA13 = new JTextPane();
		TA14 = new JTextPane();
		TA15 = new JTextPane();
		TB1 = new JTextPane();
		TB2 = new JTextPane();
		TB3 = new JTextPane();
		TB4 = new JTextPane();
		TB5 = new JTextPane();
		TB6 = new JTextPane();
		TB7 = new JTextPane();
		TB8 = new JTextPane();
		TB9 = new JTextPane();
		TB10 = new JTextPane();
		TB11 = new JTextPane();
		TB12 = new JTextPane();
		TB13 = new JTextPane();
		TB14 = new JTextPane();
		TB15 = new JTextPane();
		TC1 = new JTextPane();
		TC2 = new JTextPane();
		TC3 = new JTextPane();
		TC4 = new JTextPane();
		TC5 = new JTextPane();
		TC6 = new JTextPane();
		TC7 = new JTextPane();
		TC8 = new JTextPane();
		TC9 = new JTextPane();
		TC10 = new JTextPane();
		TC11 = new JTextPane();
		TC12 = new JTextPane();
		TC13 = new JTextPane();
		TC14 = new JTextPane();
		TC15 = new JTextPane();
		TD1 = new JTextPane();
		TD2 = new JTextPane();
		TD3 = new JTextPane();
		TD4 = new JTextPane();
		TD5 = new JTextPane();
		TD6 = new JTextPane();
		TD7 = new JTextPane();
		TD8 = new JTextPane();
		TD9 = new JTextPane();
		TD10 = new JTextPane();
		TD11 = new JTextPane();
		TD12 = new JTextPane();
		TD13 = new JTextPane();
		TD14 = new JTextPane();
		TD15 = new JTextPane();
		TE1 = new JTextPane();
		TE2 = new JTextPane();
		TE3 = new JTextPane();
		TE4 = new JTextPane();
		TE5 = new JTextPane();
		TE6 = new JTextPane();
		TE7 = new JTextPane();
		TE8 = new JTextPane();
		TE9 = new JTextPane();
		TE10 = new JTextPane();
		TE11 = new JTextPane();
		TE12 = new JTextPane();
		TE13 = new JTextPane();
		TE14 = new JTextPane();
		TE15 = new JTextPane();	
		a = new JPanel();
		b = new JPanel();
		c = getContentPane();
		//News
		//Sets
		New.addActionListener(this);
		New.setMnemonic(KeyEvent.VK_N);
		New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
		
		Save.addActionListener(this);
		Save.setMnemonic(KeyEvent.VK_S);
		Save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,ActionEvent.CTRL_MASK));
		
		Load.addActionListener(this);
		Load.setMnemonic(KeyEvent.VK_A);
		Load.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,ActionEvent.CTRL_MASK));
		
		Exit.addActionListener(this);
		Exit.setMnemonic(KeyEvent.VK_R);
		Exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,ActionEvent.ALT_MASK));
		
		Calcular.addActionListener(this);
		
		a.setLayout(new BorderLayout());
		a.add(Bar,BorderLayout.NORTH);
		a.setBorder(new LineBorder(Color.BLACK,2));
		a.add(Texto1);
		a.add(Calcular,BorderLayout.EAST);
		
		b.setLayout(new GridLayout(15,15,1,1));
		b.add(TA1);
		b.add(TA2);
		b.add(TA3);
		b.add(TA4);
		b.add(TA5);
		b.add(TA6);
		b.add(TA7);
		b.add(TA8);
		b.add(TA9);
		b.add(TA10);
		b.add(TA11);
		b.add(TA12);
		b.add(TA13);
		b.add(TA14);
		b.add(TA15);
		b.add(TB1);
		b.add(TB2);
		b.add(TB3);
		b.add(TB4);
		b.add(TB5);
		b.add(TB6);
		b.add(TB7);
		b.add(TB8);
		b.add(TB9);
		b.add(TB10);
		b.add(TB11);
		b.add(TB12);
		b.add(TB13);
		b.add(TB14);
		b.add(TB15);
		b.add(TC1);
		b.add(TC2);
		b.add(TC3);
		b.add(TC4);
		b.add(TC5);
		b.add(TC6);
		b.add(TC7);
		b.add(TC8);
		b.add(TC9);
		b.add(TC10);
		b.add(TC11);
		b.add(TC12);
		b.add(TC13);
		b.add(TC14);
		b.add(TC15);
		b.add(TD1);
		b.add(TD2);
		b.add(TD3);
		b.add(TD4);
		b.add(TD5);
		b.add(TD6);
		b.add(TD7);
		b.add(TD8);
		b.add(TD9);
		b.add(TD10);
		b.add(TD11);
		b.add(TD12);
		b.add(TD13);
		b.add(TD14);
		b.add(TD15);
		b.add(TE1);
		b.add(TE2);
		b.add(TE3);
		b.add(TE4);
		b.add(TE5);
		b.add(TE6);
		b.add(TE7);
		b.add(TE8);
		b.add(TE9);
		b.add(TE10);
		b.add(TE11);
		b.add(TE12);
		b.add(TE13);
		b.add(TE14);
		b.add(TE15);
		
		c.setLayout(new BorderLayout());
		c.add(a,BorderLayout.NORTH);
		c.add(b,BorderLayout.CENTER);
		//Sets
		
		setSize(500,500);
		setVisible(true);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setJMenuBar(Bar);
		Bar.add(Arquivo);
		Arquivo.add(New);
		Arquivo.add(Load);
		Arquivo.add(Save);
		Arquivo.addSeparator();
		Arquivo.add(Exit);
	}
	public void actionPerformed(ActionEvent e) {
		Object Item = e.getSource();
		if (Item == New){
			new Planilha();			
		}else if(Item == Save){
			int Aceita = SaveF.showSaveDialog(Planilha.this);
		}else if (Item == Load){
			int Aceita = LoadF.showOpenDialog(Planilha.this);
		}else if(Item == Exit){
			dispose();
		}else if(Item == Calcular){
			double a,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15;
			a = Long.parseLong(Texto1.getText());
			A1 = Long.parseLong(TA1.getText());
			A2 = Long.parseLong(TA2.getText());
			Texto1.setText(Double.toString(a));
		}
		
	}
	public static void main(String[]args){
		new Planilha();
	}

}

no final do código tem uma tentativa falhada de fazer isso [não pode ter um Long com letras --’]
Obrigado pela atenção.

Shogogan

2 Respostas

Ironlynx

shogogan, bem vindo ao guj!
Primeiro tem que saber se foi digitado um número para fazer uma operação matemática não adianta fazer:

Long.parseLong(Texto1.getText());

Vc precisa de um critério.Por exemplo para saber se só há números:

public boolean justNumbers(String s) { for (int i = 0; i < s.length(); i++) { if (!Character.isDigit(s.charAt(i))) { return false; } } return true; }

Existem n formas de fazer isso(usando expressóes regulares por exemplo), mas o mais importante é definir o que o usuário pode digitar(ou não) nas células.Dá uma pesquisada aqui mesmo no guj sobre isso que vc achará dezens de tópicos sobre formatação e promoção de tipos.
um []´ção!

shogogan

aquele la fico de texte xD
valeu pela dica vo da uma procurada… Se eu conseguir resolver eu mudo o titulo mais vo deixa em aberto caso mais alguem tenha dicas sabe =D

Shogogan

Criado 29 de abril de 2010
Ultima resposta 30 de abr. de 2010
Respostas 2
Participantes 2