estou tentando fazer com q quando o Jtextfield esteja com foco ele selecione o conteudo da Jtextfield, porem inseri esse Jtextfield dentro de uma coluna da minha Jtable, tentei da maneira abaixo porem não da certo quando a Jtextfield esta dentro da Jtable. Alguem poderia me ajudar ou apontar um possivel erro?
quando você clickar na TextFild tu quer que selecione tudo e passe o texto contido dela pra uma celular da tua jTable? qual celula?..
W
wesleypc
Então JoatanGuj ,
é o seguinte, eu tenho uma Jtextfield inserida em uma coluna da minha Jtable, o que eu quero fazer é que quando estiver com o foco ou clicado em uma célula qualquer da minha Jtable, selecione o conteudo da mesma.
Me falaram para fazer com o evento de mouseClicked, eu até consegui pegar a linha e a coluna clicada, porem não consegui devolver a minha Jtextfield para que eu de um selectAll() nela.
Segue o código abaixo para um melhor entendimento:
privatevoidareaEstoqueMouseClicked(java.awt.event.MouseEventevt){TableColumntableValorFabrica=areaEstoque.getColumnModel().getColumn(4);tableValorFabrica.setCellEditor(newDefaultCellEditor(tfValorFabrica));Pointclick=newPoint(evt.getX(),evt.getY());intcolumn=areaEstoque.columnAtPoint(click);introw=areaEstoque.rowAtPoint(click);//não consigo trazer minha jTextfield (tfValorFabrica) p/ dar um selectAll() na mesma, não funcionou da maneira abaixoStringcelula=areaEstoque.getModel().getValueAt(row,column).toString();tfValorFabrica.setText(celula);tfValorFabrica.selectAll();}
JoatanGuj
entendi , basta você armazenar os valores contidos nas células em variaveis e depois setar as variaveis na jTextField supondo que tenhamos isso
1 jTable com o nome = minhaTable(com 3 colunas , a 1°=Nome/ a 2°=Sobrenome/3°= CPF).
3 campos jTextfield = nome,sobrenome e cpf;
ok vamos ao trabalho.
oque você deve fazer é simples segue o codigo com explicações:
String pegarNome = minhaTable.getValueAt(minhaTable.getSelectedRow(), 0);// tem uma virgula 0 porque é a linha selecionada coluna 0.
String pegarSobrenome = minhaTable.getValueAt(minhaTable.getSelectedRow(), 1);// tem uma virgula 1 porque é a linha selecionada coluna 1.
String pegarCPF = minhaTable.getValueAt(minhaTable.getSelectedRow(), 2);// tem uma virgula 2 porque é a linha selecionada coluna 2.
//agora que ja temos os valor vamos "jogar" os valores na jTextField.
nome.setText(pegarNome);
sobrenome.setText(pegarSobrenome);
cpf.setText(pegarCPF);
//pronto ^^
espero que eu tenha ajudado, qualuqer coisa pode perguntar.
W
wesleypc
Olá JoatanGuj ,
obrigado pela atenção, porem não funciona dessa maneira dentro da jTable, ja tentei fazer assim porem não tive sucesso, segue o código abaixo mais ou menos da maneira como vc explicou.
privatevoidareaEstoqueMouseClicked(java.awt.event.MouseEventevt){TableColumntableValorFabrica=areaEstoque.getColumnModel().getColumn(4);//insere a jtextfield tfValorFabrica na coluna 4 da JtabletableValorFabrica.setCellEditor(newDefaultCellEditor(tfValorFabrica));Pointclick=newPoint(evt.getX(),evt.getY());intcolumn=areaEstoque.columnAtPoint(click);introw=areaEstoque.rowAtPoint(click);//pega o valor da celula clicadaStringcelula=areaEstoque.getModel().getValueAt(row,column).toString();tfValorFabrica.setText(celula);tfValorFabrica.selectAll();}
JoatanGuj
Funciona cara >.< ja usei tantas vezes… que modelo de jTable ta usando?. mesmo assim funciona sim lol
JoatanGuj
wesleypc:
Olá JoatanGuj ,
obrigado pela atenção, porem não funciona dessa maneira dentro da jTable, ja tentei fazer assim porem não tive sucesso, segue o código abaixo mais ou menos da maneira como vc explicou.
privatevoidareaEstoqueMouseClicked(java.awt.event.MouseEventevt){TableColumntableValorFabrica=areaEstoque.getColumnModel().getColumn(4);//insere a jtextfield tfValorFabrica na coluna 4 da JtabletableValorFabrica.setCellEditor(newDefaultCellEditor(tfValorFabrica));Pointclick=newPoint(evt.getX(),evt.getY());intcolumn=areaEstoque.columnAtPoint(click);introw=areaEstoque.rowAtPoint(click);//pega o valor da celula clicadaStringcelula=areaEstoque.getModel().getValueAt(row,column).toString();tfValorFabrica.setText(celula);tfValorFabrica.selectAll();}
não precisa expecificar a coluna do jeito que eu te disse. não tem nada ave com oque eu isse ai LOL. faz do jeito que eu disse que da certo.!
outra coisa use MouseRealeased.
W
wesleypc
fiz um teste aqui e ele pegou o valor dentro da célula clicada mesmo, porem o selectAll não funciona, ele não seleciona o conteudo dentro da célula, não sei se o JTable redireciona os eventos para os componentes do seu cell editor.
fiz um teste aqui e ele pegou o valor dentro da célula clicada mesmo, porem o selectAll não funciona, ele não seleciona o conteudo dentro da célula, não sei se o JTable redireciona os eventos para os componentes do seu cell editor.
você quer pegar o valor de uma celular selecionada em uma jTable e passar pra uma TextField certo? . o jeito que te mandei é exatamente isso.
W
wesleypc
Na verdade para min pouco importa o valor da celula clicada, o que eu realmente quero é que selecione o que esta dentro da célula clicada entende?
Por exemplo:
Célula na linha 0, na coluna 0, tem o valor 400 dentro dela.
Quando eu clicar na Célula da linha 0, da coluna 0 ele deixe selecionado o 400.
Entendeu?
JoatanGuj
wesleypc:
Na verdade para min pouco importa o valor da celula clicada, o que eu realmente quero é que selecione o que esta dentro da célula clicada entende?
Por exemplo:
Célula na linha 0, na coluna 0, tem o valor 400 dentro dela.
Quando eu clicar na Célula da linha 0, da coluna 0 ele deixe selecionado o 400.
Entendeu?
justamente oque eu te passei ^^.
se quiser usar uma ajuda mais aprofundada posso fazer pra você via team Viewer dai vc me pergunta as duvidas. mais oque eu te mandei aquela hora é exatamente oque você quer:
String pegarNome = minhaTable.getValueAt(minhaTable.getSelectedRow(), 0);// tem uma virgula 0 porque é a linha selecionada coluna 0.
String pegarSobrenome = minhaTable.getValueAt(minhaTable.getSelectedRow(), 1);// tem uma virgula 1 porque é a linha selecionada coluna 1.
String pegarCPF = minhaTable.getValueAt(minhaTable.getSelectedRow(), 2);// tem uma virgula 2 porque é a linha selecionada coluna 2.
//agora que ja temos os valor vamos "jogar" os valores na jTextField.
nome.setText(pegarNome);
sobrenome.setText(pegarSobrenome);
cpf.setText(pegarCPF);
//pronto ^^
W
wesleypc
Blz, vou almoçar aqui agora, e logo que eu voltar eu te do um toque para vc me dar uma ajuda ok?
Grato.
JoatanGuj
wesleypc:
Blz, vou almoçar aqui agora, e logo que eu voltar eu te do um toque para vc me dar uma ajuda ok?
Grato.
ok
W
wesleypc
Olá JoatanGuj,
voltei, por acaso vc poderia me passar seu msn para nós vermos esse caso?
Vlw
JoatanGuj
wesleypc:
Olá JoatanGuj,
voltei, por acaso vc poderia me passar seu msn para nós vermos esse caso?