[RESOLVIDO] Inverter uma String em uma tabela

40 respostas
V

Boa tarde pessoal,

Eu sou novo no forum e tenho uma grande dúvida aqui para fazer, quero inverter uma String de uma das JTabble para outra, quando apertar o botão executar, e que apareça em uma outra tabela a palavra de modo contrario, estou postando o meu codigo fonte.
package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class TelaPrincipal extends JFrame {
	
	
	private JButton botaoExecutar;
	private JButton botaoLoggin;
	private JButton botaoLoggin2;
	private JTextField caminhoUrlOrigem;
	private JTable tabelaDescricao;
	private JTable tabelaResultado;
	private JTextField caminhoUrlDestino;
	private JTextField caminhoUser;
	private JTextField caminhoUser2;
	private JLabel urlDestino;
	private JLabel urlOrigem;
	private JLabel user;
	private JLabel user2;
	private JLabel password;
	private JLabel password2;
	private JLabel descricao;
	private JLabel resultado;
	private JPasswordField caminhoPassword;
	private JPasswordField caminhoPassword2;
	

	public TelaPrincipal() {
		super("Tela Principal Dump");		
		getContentPane().setLayout(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setVisible(true);
		this.setSize(900, 600);
	}

	public void ConfigTela() {
		try {
				
			
			// configuração urlOrigemLabel;
			urlOrigem = new JLabel();
			getContentPane().add(urlOrigem);
			urlOrigem.setText("URL Origem");
			urlOrigem.setBounds(3, 5, 80, 20);
			urlOrigem.setBorder(BorderFactory.createTitledBorder(""));

			// configuração urlDestinLabel;
			urlDestino = new JLabel();
			getContentPane().add(urlDestino);
			urlDestino.setText("URL Destino");
			urlDestino.setBounds(3, 30, 80, 20);
			urlDestino.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoUrlOrigem;
			caminhoUrlOrigem = new JTextField();
			getContentPane().add(caminhoUrlOrigem);
			caminhoUrlOrigem.setText("http:\\");
			caminhoUrlOrigem.setBounds(90, 5, 270, 21);

			// configuração caminhoUrlDestino;
			caminhoUrlDestino = new JTextField();
			getContentPane().add(caminhoUrlDestino);
			caminhoUrlDestino.setText("http:\\");
			caminhoUrlDestino.setBounds(90, 30, 270, 21);

			// configuração userLabel;
			user = new JLabel();
			getContentPane().add(user);
			user.setText("Usuário");
			user.setBounds(400, 5, 55, 21);
			user.setBorder(BorderFactory.createTitledBorder(""));

			// configuração user2Label;
			user2 = new JLabel();
			getContentPane().add(user2);
			user2.setText("Usuário");
			user2.setBounds(400, 30, 55, 21);
			user2.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoUser;
			caminhoUser = new JTextField();
			getContentPane().add(caminhoUser);
			caminhoUser.setBounds(460, 5, 115, 21);

			// configuração caminhoUser2;
			caminhoUser2 = new JTextField();
			getContentPane().add(caminhoUser2);
			caminhoUser2.setBounds(460, 30, 115, 21);

			// configuração passwordLabel;
			password = new JLabel();
			getContentPane().add(password);
			password.setText("Senha");
			password.setBounds(615, 5, 48, 21);
			password.setBorder(BorderFactory.createTitledBorder(""));

			// configuração password2Label;
			password2 = new JLabel();
			getContentPane().add(password2);
			password2.setText("Senha");
			password2.setBounds(615, 30, 48, 21);
			password2.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoPassword;
			caminhoPassword = new JPasswordField();
			getContentPane().add(caminhoPassword);
			caminhoPassword.setEchoChar('*');
			caminhoPassword.setBounds(670, 5, 60, 21);

			// configuração caminhoPassword2;
			caminhoPassword2 = new JPasswordField();
			getContentPane().add(caminhoPassword2);
			caminhoPassword2.setEchoChar('*');
			caminhoPassword2.setBounds(670, 30, 60, 21);

			// configuração botaoExecutar;
			botaoExecutar = new JButton();
			getContentPane().add(botaoExecutar);
			botaoExecutar.setText("Executar");
			botaoExecutar.setBounds(0, 513, 896, 63);
	

			// configuração botãoLoggin;
			botaoLoggin = new JButton();
			getContentPane().add(botaoLoggin);
			botaoLoggin.setText("Loggin");
			botaoLoggin.setBounds(750, 5, 80, 21);

			// configuraçãobotãoLoggin2;
			botaoLoggin2 = new JButton();
			getContentPane().add(botaoLoggin2);
			botaoLoggin2.setText("Loggin");
			botaoLoggin2.setBounds(750, 30, 80, 21);

			// configuração descriçãoLabel;
			descricao = new JLabel();
			getContentPane().add(descricao);
			descricao.setText("Descrição");
			descricao.setBounds(0, 80, 450, 25);
			descricao.setBorder(BorderFactory.createTitledBorder(""));
			descricao.setFont(new java.awt.Font("Tahoma", 0, 20));
			descricao.setHorizontalAlignment(SwingConstants.CENTER);

			// configuração resultadoLabel;
			resultado = new JLabel();
			getContentPane().add(resultado);
			resultado.setText("Resultado");
			resultado.setBounds(451, 80, 443, 25);
			resultado.setBorder(BorderFactory.createTitledBorder(""));
			resultado.setFont(new java.awt.Font("Tahoma", 0, 20));
			resultado.setHorizontalAlignment(SwingConstants.CENTER);
			
			//configuração tabelaDescrição;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { "" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" },{ "" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				new String[] { "Column 1"});
				
				
				tabelaDescricao = new JTable();
				getContentPane().add(tabelaDescricao);
				tabelaDescricao.setModel(tabelaDescricaoModel);
				tabelaDescricao.setBounds(0, 108, 450, 400);
			}
			
			//configuração tabelaresultado;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { ""},{""},{ ""},{ ""},{""},
				{ ""},{ "" },{"" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				new String[] { "Column 1"});
				
				
				tabelaResultado = new JTable();
				getContentPane().add(tabelaResultado);
				tabelaResultado.setModel(tabelaDescricaoModel);
				tabelaResultado.setBounds(451, 108, 443, 400);
			}
				
				
				

		} catch (Exception e) {
			System.out.println("Tela não pode ser inicializada");
			e.printStackTrace();
		}

		
	}

	public static void main(String[] args) {

		TelaPrincipal tp = new TelaPrincipal();
		tp.ConfigTela();

	}

}

40 Respostas

V

Alguém???

nel

Olá!

Então cara, entendo bem pouco de Swing, mas resumidamente, você deve ter um actionListener para o seu botão executar.
Quando esse botão for acionado, o método do actionListener será invocado e você pode executar determinados passos.

No seu caso, você precisa pegar a string que deseja, inverte-la e em seguida, popular na JTable que deseja.
Senão me falha a memoria, basta dar algo com seuBotão.addListener(new Listener()) indicando qual o tipo de ação que esse listener será invocado, no seu caso, em um click.

Espero ter ajudado.
Abraços.

V

eae nel ,

é o seguinte, sim de ActionListener eu sei um pouquinho, o meu problema é como eu faço para fazer essa conversão? e como imprimir ela em uma linha de uma outra tabela, :cry:

jroberto.nsc
public class Main {
  public static void main(String args[]) {
    StringBuffer stringBufferOne = new StringBuffer("abcde");
    
   StringBuffer stringBufferTwo= stringBufferOne.reverse();
    
    System.out.println("One: " + stringBufferOne);
    System.out.println("Two: " + stringBufferTwo);
  }
}
V

Mas como eu posso fazer isso em uma tabela???

lina

Oi,

Algo do tipo:

StringBuffer stringBufferOne = new StringBuffer(tabela_1.getValueAt(row, column).toString());  

tabela_2.setValueAt(""+stringBufferOne.reverse(), tabela_2.getSelectedRow(), column);

Tchauzin!

V

Lina, isso dentro de uma metodo? ou direto na hora de instanciar a tabela,

lina

Oi,

Isso dentro da ação de seu botão…

Tchauzin!

Vingdel

vinigess, essa é a ação do botão amigo.

Sorte!

V

Desculpem, as acho que não entendi muito bem, vou copiar o meu código, para vcs derem uma olhada, já que estou errando nas row e column.

package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class TelaPrincipal extends JFrame {
	
	
	private JButton botaoExecutar;
	private JButton botaoLoggin;
	private JButton botaoLoggin2;
	private JTextField caminhoUrlOrigem;
	private JTable tabelaDescricao;
	private JTable tabelaResultado;
	private JTextField caminhoUrlDestino;
	private JTextField caminhoUser;
	private JTextField caminhoUser2;
	private JLabel urlDestino;
	private JLabel urlOrigem;
	private JLabel user;
	private JLabel user2;
	private JLabel password;
	private JLabel password2;
	private JLabel descricao;
	private JLabel resultado;
	private JPasswordField caminhoPassword;
	private JPasswordField caminhoPassword2;
	


	public TelaPrincipal() {
		super("Tela Principal Dump");		
		getContentPane().setLayout(null);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setVisible(true);
		this.setSize(900, 600);
	}

	public void ConfigTela() {
		try {
				
			
			// configuração urlOrigemLabel;
			urlOrigem = new JLabel();
			getContentPane().add(urlOrigem);
			urlOrigem.setText("URL Origem");
			urlOrigem.setBounds(3, 5, 80, 20);
			urlOrigem.setBorder(BorderFactory.createTitledBorder(""));

			// configuração urlDestinLabel;
			urlDestino = new JLabel();
			getContentPane().add(urlDestino);
			urlDestino.setText("URL Destino");
			urlDestino.setBounds(3, 30, 80, 20);
			urlDestino.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoUrlOrigem;
			caminhoUrlOrigem = new JTextField();
			getContentPane().add(caminhoUrlOrigem);
			caminhoUrlOrigem.setText("http:\\");
			caminhoUrlOrigem.setBounds(90, 5, 270, 21);

			// configuração caminhoUrlDestino;
			caminhoUrlDestino = new JTextField();
			getContentPane().add(caminhoUrlDestino);
			caminhoUrlDestino.setText("http:\\");
			caminhoUrlDestino.setBounds(90, 30, 270, 21);

			// configuração userLabel;
			user = new JLabel();
			getContentPane().add(user);
			user.setText("Usuário");
			user.setBounds(400, 5, 55, 21);
			user.setBorder(BorderFactory.createTitledBorder(""));

			// configuração user2Label;
			user2 = new JLabel();
			getContentPane().add(user2);
			user2.setText("Usuário");
			user2.setBounds(400, 30, 55, 21);
			user2.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoUser;
			caminhoUser = new JTextField();
			getContentPane().add(caminhoUser);
			caminhoUser.setBounds(460, 5, 115, 21);

			// configuração caminhoUser2;
			caminhoUser2 = new JTextField();
			getContentPane().add(caminhoUser2);
			caminhoUser2.setBounds(460, 30, 115, 21);

			// configuração passwordLabel;
			password = new JLabel();
			getContentPane().add(password);
			password.setText("Senha");
			password.setBounds(615, 5, 48, 21);
			password.setBorder(BorderFactory.createTitledBorder(""));

			// configuração password2Label;
			password2 = new JLabel();
			getContentPane().add(password2);
			password2.setText("Senha");
			password2.setBounds(615, 30, 48, 21);
			password2.setBorder(BorderFactory.createTitledBorder(""));

			// configuração caminhoPassword;
			caminhoPassword = new JPasswordField();
			getContentPane().add(caminhoPassword);
			caminhoPassword.setEchoChar('*');
			caminhoPassword.setBounds(670, 5, 60, 21);

			// configuração caminhoPassword2;
			caminhoPassword2 = new JPasswordField();
			getContentPane().add(caminhoPassword2);
			caminhoPassword2.setEchoChar('*');
			caminhoPassword2.setBounds(670, 30, 60, 21);

			// configuração botaoExecutar;
			botaoExecutar = new JButton();
			getContentPane().add(botaoExecutar);
			botaoExecutar.setText("Executar");
			botaoExecutar.setBounds(0, 513, 896, 63);
			botaoExecutar.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					try {
						
						StringBuffer stringBufferOne = new StringBuffer(tabelaDescricao.getValueAt(row, column).toString());
						tabelaResultado.setValueAt(""+stringBufferOne.reverse(), tabelaResultado.getSelectedRow(), column);
						
					System.out.println("Executado!");
					} catch (Exception e2) {
						e2.printStackTrace();
					}
					
					
				}
			});

			// configuração botãoLoggin;
			botaoLoggin = new JButton();
			getContentPane().add(botaoLoggin);
			botaoLoggin.setText("Loggin");
			botaoLoggin.setBounds(750, 5, 80, 21);

			// configuraçãobotãoLoggin2;
			botaoLoggin2 = new JButton();
			getContentPane().add(botaoLoggin2);
			botaoLoggin2.setText("Loggin");
			botaoLoggin2.setBounds(750, 30, 80, 21);

			// configuração descriçãoLabel;
			descricao = new JLabel();
			getContentPane().add(descricao);
			descricao.setText("Descrição");
			descricao.setBounds(0, 80, 450, 25);
			descricao.setBorder(BorderFactory.createTitledBorder(""));
			descricao.setFont(new java.awt.Font("Tahoma", 0, 20));
			descricao.setHorizontalAlignment(SwingConstants.CENTER);

			// configuração resultadoLabel;
			resultado = new JLabel();
			getContentPane().add(resultado);
			resultado.setText("Resultado");
			resultado.setBounds(451, 80, 443, 25);
			resultado.setBorder(BorderFactory.createTitledBorder(""));
			resultado.setFont(new java.awt.Font("Tahoma", 0, 20));
			resultado.setHorizontalAlignment(SwingConstants.CENTER);
			
			//configuração tabelaDescrição;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { "teste"},{ "" },{ "teste3" },{ "" },{ "" },
				{ "" },{ "" },{ "" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				
				
				new String[] { "Column 1"});
				
				
				tabelaDescricao = new JTable();
				getContentPane().add(tabelaDescricao);
				tabelaDescricao.setModel(tabelaDescricaoModel);
				tabelaDescricao.setBounds(0, 108, 450, 400);
			
			

			}
			
			//configuração tabelaresultado;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { ""},{""},{ ""},{ ""},{""},
				{ ""},{ "" },{"" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				new String[] { "Column 2"});
				
				
				tabelaResultado = new JTable();
				getContentPane().add(tabelaResultado);
				tabelaResultado.setModel(tabelaDescricaoModel);
				tabelaResultado.setBounds(451, 108, 443, 400);
			}
				
				
				

		} catch (Exception e) {
			System.out.println("Tela não pode ser inicializada");
			e.printStackTrace();
		}

		
	}

	public static void main(String[] args) {

		TelaPrincipal tp = new TelaPrincipal();
		tp.ConfigTela();

	}

}

OBRIGADO!

lina

Oi,

Claro.. você precisa substituir o conteúdo row pela linha selecionada e a column pela coluna que deseja pegar a String:

botaoExecutar.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent e) {
					try {
						
						StringBuffer stringBufferOne = new StringBuffer(tabelaDescricao.getValueAt(tabelaResultado.getSelectedRow(), 2).toString()); // Estou peando a informação da linha selecionada e da coluna 2.
						tabelaResultado.setValueAt(""+stringBufferOne.reverse(), 1, 2); // Quero jogar na linha 1 coluna 2 da tabelaResultado
						
					System.out.println("Executado!");
					} catch (Exception e2) {
						e2.printStackTrace();
					}
					
					
				}
			});

Tchauzin!

V

Lina, olha eu aqui de novo, te enxendo, rsrsrsrsrsrs, mas não rolo, agora esta dando este erro

java.lang.ArrayIndexOutOfBoundsException: 1 >= 1

at java.util.Vector.elementAt(Vector.java:427)

at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)

at sun.swing.SwingUtilities2.convertColumnIndexToModel(SwingUtilities2.java:1783)

at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2551)

at javax.swing.JTable.getValueAt(JTable.java:2686)

at view.TelaPrincipal$1.actionPerformed(TelaPrincipal.java:144)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6267)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

at java.awt.Component.processEvent(Component.java:6032)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4630)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2478)

at java.awt.Component.dispatchEvent(Component.java:4460)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Obrigado!

claudneto

Pega o código do lina e faz pra suas tabelas.

Vc tá usando NetBeans ou Eclipse? Se tiver, ao usar o método setValueAt, ele te mostra os parâmetros que ele recebe, com isso, vc consegue saber quais informações vc tem e onde colocá-las.

V

Pois é nisso que estou me batendo nessa hora de tabelas e colunas, e eu acho que ela já fez para o meu codigo, e estou usando Eclipse.

V

Lina?

lina

Oi,

A tabela chamada tabelaResultado já tem alguma linha inserida ? Ou está sem linhas?

Tchauzin!

V

Está sem linha.

//configuração tabelaresultado;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { ""},{""},{ ""},{ ""},{""},
				{ ""},{ "" },{"" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				new String[] { "Column 2"});
				
				
				tabelaResultado = new JTable();
				getContentPane().add(tabelaResultado);
				tabelaResultado.setModel(tabelaDescricaoModel);
				tabelaResultado.setBounds(451, 108, 443, 400);
			}

		} catch (Exception e) {
			System.out.println("Tela não pode ser inicializada");
			e.printStackTrace();
		}
claudneto

Adiciona a linha antes de fazer a inversão e atribuição do valor.

table.getModel().addRow()

Se não me engano é isso!

V

Clauneto, a tabela não tem nada escrito não, porque eu queria que somente uma tivesse, pois quando eu clicasse no botão as linhas que tivessem escritas na tabela descrição passaria para a tabela resultado, mas de forma invertida.

Se alguém poder me ajudar.

Obrigado!

lina

vinigess:
Clauneto, a tabela não tem nada escrito não, porque eu queria que somente uma tivesse, pois quando eu clicasse no botão as linhas que tivessem escritas na tabela descrição passaria para a tabela resultado, mas de forma invertida.

Se alguém poder me ajudar.

Obrigado!

Oi,

Como a tabela esta vazia (sem linhas), você precisará adicionar uma linha em branco antes de executar o método setValueAt().

Tchauzin!

V
Mas ela já não está vazia?
//configuração tabelaresultado;  
                {  
                    TableModel tabelaDescricaoModel = new DefaultTableModel(  
      
                    new String[][] { { ""},{""},{ ""},{ ""},{""},  
                   { ""},{ "" },{"" },{ "" },{ "" },{ "" },{ "" },  
                   { "" },{ "" }  
                     
                   },  
                   new String[] { "Column 2"});  
                     
                     
                   tabelaResultado = new JTable();  
                   getContentPane().add(tabelaResultado);  
                   tabelaResultado.setModel(tabelaDescricaoModel);  
                   tabelaResultado.setBounds(451, 108, 443, 400);  
               }  
     
           } catch (Exception e) {  
               System.out.println("Tela não pode ser inicializada");  
               e.printStackTrace();  
           }  

Essa é a tabela que eu querp que apareça depois de clicar no botão executar, ao modo contrario

e esse é a que  tem as linhas
[code]
//configuração tabelaDescrição;
			{
				TableModel tabelaDescricaoModel = new DefaultTableModel(

				new String[][] { { "testw"},{ "" },{ "" },{ "" },{ "" },
				{ "teste" },{ "" },{ "" },{ "" },{ "" },{ "" },{ "" },
				{ "" },{ "" }
				
				},
				
				
				new String[] { "Column 1"});
				
				
				tabelaDescricao = new JTable();
				getContentPane().add(tabelaDescricao);
				tabelaDescricao.setModel(tabelaDescricaoModel);
				tabelaDescricao.setBounds(0, 108, 450, 400);
			
			

			}
nel

Amigo, olhe o que a Lina escreveu (e outro colega antes da Lina algo parecido):

Uma tabela vazia no qual a Lina se refere é uma tabela que não tem nenhuma linha adicionada a ela.
Ou seja, como você quer setar um valor em uma linha que não existe?

Sendo assim, você tem sua tabela criada, agora crie a linha e adicione ela na tabela e depois popule o resultado.
Abraços!

V

Ta, e como eu posso fazer isso?

Desculpem, eu sou novo na linguagem.

nel

claudneto:
Adiciona a linha antes de fazer a inversão e atribuição do valor.

table.getModel().addRow()

Se não me engano é isso!

Já tentou isso? E como você está setando o valor atualmente amigo?!
Tente aqui ó:

DefaultTableModel tm = new DefaultTableModel();
	        String[] row1 = {"Valor 1", "Valor 2", "Valor 3"};
	        tm.addRow(row1);

Ele aceita qualquer array de object, então podes adicionar inclusive os objetos criados por você.
Abraços!

Edit: consulte aqui!

V

nel,

Fiz o codigo que você me falou, mas agora não esta aparencendo as linhas com o que eu escrevi e muito menos trocando de lado e de formas.

//configuração tabelaDescrição;
			{
				DefaultTableModel tm= new DefaultTableModel();

				 String[]row1 = {  "Valor1", "Valor2" , "Valor3"};
				 tm.addRow(row1);
				
				
				
				tabelaDescricao = new JTable();
				getContentPane().add(tabelaDescricao);
				tabelaDescricao.setModel(tm);
				tabelaDescricao.setBounds(0, 108, 450, 400);
			
			

			}
			
			//configuração tabelaresultado;
			{
				DefaultTableModel tm1 = new DefaultTableModel();

				
				String[]row1 = {  "Valor3", "Valor4" , "Valor5"};
				 tm1.addRow(row1);
				 
				
				
				
				tabelaResultado = new JTable();
				getContentPane().add(tabelaResultado);
				tabelaResultado.setModel(tm1);
				tabelaResultado.setBounds(451, 108, 443, 400);
			}

Essas são as minhas duas tabelas.

Vlw!!

V

e este é o erro que ta dando

java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
	at java.util.Vector.elementAt(Vector.java:427)
	at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
	at sun.swing.SwingUtilities2.convertColumnIndexToModel(SwingUtilities2.java:1783)
	at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2551)
	at javax.swing.JTable.getValueAt(JTable.java:2686)
	at view.TelaPrincipal$1.actionPerformed(TelaPrincipal.java:145)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6267)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6032)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4630)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4460)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4460)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
V

alguma ajuda??

V

SE ALGUEM PUDER ME AJUDAR.

Vingdel

Boa Tarde, vinigess!

Meu velho, tu tem que entender o que o pessoal ta exemplificando para você, eles estão dando exemplos do que você tem que fazer e não fazendo o código para você.

Você ta pegando o código que o pessoal posta e ta jogando no seu projeto. Estude um pouco JTable e você vai entender o que os exemplos estão fazendo ou até mesmo vai fazer sem precisar dos exemplos postados.

O que acontece é que o seu botão pega uma String de uma tabela, inverte e popula outra, sendo que para a outra tabela receber a String invertida, ela tem que ter um lugar para receber, ou seja, você tem que criar uma linha que vai receber a String em uma de suas células.

Faça como o amigo nel sugeriu, LEIA AQUI.

Outra sugestão é o artigo do GUJ sobre JTable, LEIA AQUI.

Abraço e boa sorte!

V

Vingdel, cara vlw pelas tuto, li e refiz a minha tabela, que agora esta assim

private DefaultTableModel model;
private JTable table;
String[] colunas = new String[] {"descricao", "resultado"};
						
							String[][] dados = new String[][] {
									{"teste", ""},
									{"teste1", ""},
									{"teste2", ""},
									{"teste3", ""}
							};
							DefaultTableModel model = new DefaultTableModel(dados, colunas);		
				
							
							
				
				table = new JTable(model);
				getContentPane().add(table);
				
				table.setBounds(12, 77, 870, 424);
Mas na parte de trocar os nome, que esta assim
botaoExecutar.addActionListener(new ActionListener() {  
				                      
				                    @Override  
				                    public void actionPerformed(ActionEvent e) {  
				                        try {  
				                              
				                        	    StringBuffer stringBufferOne = new StringBuffer(table.getValueAt(1, 1).toString());    
				                        	      
				                        	    table.setValueAt(""+stringBufferOne.reverse(), table.getSelectedRow(), 2);  				                              
				                        
				                       } catch (Exception e2) {  
				                           e2.printStackTrace();  
				                      }  
				                         
				                         
				                   }  
				               });

Agora coloquei uma tabela apenas mas com duas colunas, acho que assim ficaria mais facil né?

Abraços!

V

alguma ajuda?

V

algum moderador, ou expert?

Vingdel

Bom Dia!

Qual o problema restante?

Abraço!

Tino_

Olá amigo, vamos ver se entendi seu problema…

você quer digitar uma string no lado descrição e aparecer ela invertida do outro lado no resultado…

certo ?

V

Tino_

é isso mesmo, peguei uma tabela JTable coloquei umas 10 rows e 2 column e gostaria de fazer esse procedimento sim,
podes me ajudar?

Obrigado!

Tino_

Vou tentar te ajudar amigo, mas agora to sem tempo…

logo te respondo…

Abraço!

Tino_

Bother olha como eu fiz…

eu criei uma tela simples no netbeans e importei pro eclipse… uma table com 2 colunas e 4 linhas já pré feitas…
e um botão…

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * TelaTabela.java
 *
 * Created on May 25, 2011, 9:28:30 AM
 */

package teste;
/**
 *
 * @author Milton.neto
 */
public class TelaTabela extends javax.swing.JFrame {

	public ActionListenerTela action;

    /** Creates new form TelaTabela */
    public TelaTabela() {
    	
    	action = new ActionListenerTela(this);
    	
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"", ""},
                {"", ""},
                {null, null},
                {null, null}
            },
            new String [] {
                "Descriçao", "Resultado"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jButton1.setText("jButton1");
        jButton1.addActionListener(action);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(15, Short.MAX_VALUE)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(158, 158, 158)
                .addComponent(jButton1)
                .addContainerGap(169, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaTabela().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    public javax.swing.JButton jButton1;
    public javax.swing.JScrollPane jScrollPane1;
    public javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables

}

eu costumo colocar o ActionListener em uma classe separada, não deixa o codigo bagunçado e tudo junto.

ActionListener:

package teste;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ActionListenerTela implements ActionListener{


	TelaTabela tabela;
	
	public ActionListenerTela(TelaTabela tabela){
		this.tabela = tabela;
	}
	
	
	public void actionPerformed(ActionEvent e) {

		if(tabela.jButton1 == e.getSource()){
			
			String texto1 = tabela.jTable1.getValueAt(tabela.jTable1.getSelectedRow(), 0).toString();
			
			StringBuffer textoPronto = new StringBuffer(texto1);
			textoPronto.reverse();
			
			System.out.println(textoPronto);
			
			tabela.jTable1.setValueAt(textoPronto, 0, 1);
			
		}
	}
}

to pegando o valor da linha selecionada da primera coluna e recebendo no meu >>> String <<< texto1 … não posso fazer

StringBuffer texto1 = (StringBuffer) tabela.jTable1.getValueAt(tabela.jTable1.getSelectedRow(), 0);

Porque ele nao aceita o Cast…
então primeiro recebo ele em um String depois dou estancio uma nova StringBuffer recebendo aquela String…
após fazer isso é só usar o codigo que o pessoal te passou

.reverse();

e jogar devolta na sua linha que JÁ está pronta…

Abraço espero ter ajudado.

V

brother, so uma pergunta, você fez isso no netbeans?

Tino_

a tela sim…
é só um exemplo meu querido…
se você copiar o codigo e colar no seu eclipse funciona!

tendeu ?

só fiz a tela no netbeans pq era mais rapido…
importei o .java dela pro eclipse e fiz o resto…

funcionou ?

V

cara eu não copiei direto não, sou novo mais não tão burro, rsrsrsrsrsrsrs

funciono sim, mais eu tive que fazer umas gambiarras, daqui a pouco eu posto o codigo certinho para ficar mais legal.

Muito obrigado mesmo!!

Criado 10 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 40
Participantes 7