Linha selecionada no jTable aparecer no jTextField

Olá pessoal
eu tenho dois frames, em um deles tem uma tabela de alunos, eu quero selecionar um aluno e clicar no botão marcar aula, e automaticamente o nome so aluno selecionado apareceria no jTexfiel aluno que esta em outro frame, alguem sabe como fazer isso?
obrigada :roll: :frowning:

Olá!

  1. Crie uma classe que implemente ActionListener;
  2. Adicione uma instância da sua classe com .addActionListener();
  3. No método sobrescrito, atualize o JTextField.

De qualquer forma, como são frames diferentes, o ideal é que sua GUI conhecesse uma referência para um façade comum. Ao selecionar o frame, ele seria atualizado com os dados do façade.

Espero ter ajudado.

Poderia me mostrar um exemplo?

Bom vc pode fazer da seguinte maneira bem simples imagine que a minha tabela tenha as Coluna
Codigo, Nome, Data nas respectivas posições 0 , 1 e 2

para pegar o conteudo de uma determinada linha selecionada vc pode fazer alguns metodos get’s como
este a seguir:


   public String getCodigo()
    {
      //getSelectedRow() Retorna o numero da linha que esta selecionada
      int lin=tabela.getSelectedRow();  
      
      //getModel().getValueAt(lin,0).toString()  Vai retorna o valor da linha "lin" da coluna 0 e convertelo para string 
      return tabela.getModel().getValueAt(lin,0).toString();     
    }
    
   //A mesma ideia é usada para os demais
    public String getNome()
    {
      int lin=tabela.getSelectedRow();  
      return tabela.getModel().getValueAt(lin,1).toString();     
    }
    
    public String getData()
    {
        int lin=tabela.getSelectedRow();  
        return tabela.getModel().getValueAt(lin,2).toString();   
    }

Você pode fazer os campos receber diretamente os valores sem a nescessidades dos get’s
Uma Forma direta seria assim:

//retornando o valor da segunda coluna a coluna de numero 1
JTextFild1.setText(tabela.getModel().getValueAt(tabela.getSelectedRow(),1).toString(););

Espero que ajude!

1 curtida

Olá novamente!

Segue um exemplo:


package com.test;

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

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class Main
{
	public static void main(String ... args)
	{
		new Window();
	}
}

class Window extends JFrame
{
	private JPanel panel = new JPanel();
	private JCheckBox checkBox = new JCheckBox();
	private JTextField textField = new JTextField("Aluno não incluso");
	
	public Window()
	{
		panel.add(checkBox);
		panel.add(textField);
		add(panel);
		
		// Insere nosso listener
		checkBox.addActionListener(new MeuListener());
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(800,600);
		setVisible(true);
		
	}
	
	
	class MeuListener implements ActionListener
	{
		
		@Override
		public void actionPerformed(ActionEvent arg0)
		{
			if(checkBox.isSelected())
				textField.setText("Aluno Incluso");
			else
				textField.setText("Aluno não incluso");
		}
		
	}

}

Abraços!!

Obrigada me ajudou muito,
abraços!