[RESOLVIDO] Inverter uma String em uma tabela

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.

[code]
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();

}

}[/code]

Alguém???

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.

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:

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

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

Oi,

Algo do tipo:

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

tabela_2.setValueAt(""+stringBufferOne.reverse(), tabela_2.getSelectedRow(), column);[/code]

Tchauzin!

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

Oi,

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

Tchauzin!

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

Sorte!

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!

Oi,

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

[code]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();
				}
				
				
			}
		});[/code]

Tchauzin!

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!

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.

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.

Lina?

Oi,

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

Tchauzin!

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

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

table.getModel().addRow()

Se não me engano é isso!

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!