Integração entre jtable e jlabel em outra janela

4 respostas
A

Olá gente, boa madrugada.

bom, é o seguinte…
a minha dúvida é se da pra fazer uma jtable conversar com uma janela com inúmeras jlabels…

é assim…tenho uma tela, onde ela tem uma tabela, que é carregada por uma classe e tal, até ai tudo bem, ela carrega os dados do banco e tudo bonitinho…

mas eu queria saber se teria como eu poder carregar essas informações também em outra janela, só que dentro de jlabels, tipo, “nome”, “endereço”, “cep”, e assim por diante…

e também, se poderia fazer isso só de selecionar uma linha da tabela…
aqui, eu tenho um botão que vai para essa tela das jlabels e o que eu queria que ele fizesse…(se, uma linha da tabela fosse selecionada ou simplesmente recebesse o foco, ao apertar o botão, abrisse uma janela, e carregasse, dentro das jlabels, as informações contidas na tabela).

ex:

nome: marcos
endereço: avenida da morte
bairro: bairro 1
cep: 66555-930
nº: 500

esse exemplo, seria dentro da janela aberta pelo botão…

espero ter solução, desde já, agradeço.

4 Respostas

H

Eu não entendi se é só depois que apertar o botão ou sempre que trocar que abre a janela com as JLable, mas das duas formas é possível fazer. Se for sempre que mudar o foco você vai ter que usar um listener, se for depois que clicar no botão, você tem 2 formas de fazer, pegar os valores da tabela antes e passar como parâmetro para o construtor da nova classe ou passar a JTable como parâmetro e na nova classe pegar o valor, mas o que você quer fazer não é muito usual de JLabel receber resultado e ser alterada, costuma existir as JLabel padrões que não modifica valor e na frente de cada uma colocar um JTextField, pois fica melhor visivelmente.

D

Para selecionar apenas um item

jTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

Para atualizar os labels ao clicar numa linha

jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent e) {
    int linhaSelecionada = e.getFirstIndex();
    /* obtem os dados e atualiza os labels*/
  }
});
A

bom…vou tentar ser mais claro…

a minha tela tem:

  • a tabela que é carregada com os dados do banco
  • um botão onde faz a inserção dos dados (não vou mexer nisso)
  • um botão para mostrar as informações mais detalhadas (ai que é a história), que leva a uma outra janela, onde contém jlabels como, “nome”, “cep”, “endereço”,…

a tabela, claro, ela permite receber o foco de uma linha, você seleciona e tudo bem, ela fica destacada.

o que eu queria de fato, era de, assim que uma linha da tabela recebesse esse tal foco, na hora que fosse apertar o botão das informações (citado acima), ao abrir a janela, os jlabels fossem carregados com as informações da tabela, da linha que foi destacada (que recebeu o foco).

pois, minha tabela só coloquei para aparecer apenas alguns dados (5 dados apenas), pois, eu queria que o resto aparecesse nesta tal janela de informações detalhadas (que ao todo, são mais de 10 informações).

se não ter para entender ainda, eu posto o código e um print do sistema aqui.

H

Se você tiver ainda com a variável do tipo list que recebeu do banco é só passar ela como parâmetro e procurar o dado pelo id selecionado da tabela, se as posições do array forem iguais da tabela é só você pegar a posição da tabela clicada e então ao passar a lista e a posição como parâmetro faz um lista.get(pisição).getNome, etc, se não tiver mais, para aparecer todos os dados você vai ter que pegar novamente do banco, pois você não tinha todas as informações na JTable. Novamente eu falo que não é legal usar JLabel, seria melhor JTextField.

Criado 19 de abril de 2018
Ultima resposta 19 de abr. de 2018
Respostas 4
Participantes 3