Selecionar Linhas JTable para CtrlC e CtrlV

14 respostas
evertonsilvagomesjav

Pessoal bom dia!

Como faço pra poder deixar que minhas linhas da JTable fiquem “selecionaveis”, ou seja o usuario consiga clicar nela pra poder copiar e colar os dados contidos nela?

14 Respostas

pintofree

evertonsilvagomesjava:
Pessoal bom dia!

Como faço pra poder deixar que minhas linhas da JTable fiquem “selecionaveis”, ou seja o usuario consiga clicar nela pra poder copiar e colar os dados contidos nela?

Coloca um default cell editor de sua preferencia, algo mais ou menos assim

jTable1.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new o-componente)

evertonsilvagomesjav

pintofree:
evertonsilvagomesjava:
Pessoal bom dia!

Como faço pra poder deixar que minhas linhas da JTable fiquem “selecionaveis”, ou seja o usuario consiga clicar nela pra poder copiar e colar os dados contidos nela?

Coloca um default cell editor de sua preferencia, algo mais ou menos assim

jTable1.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new o-componente)

eita nao entendi =/

ViniGodoy

Você diz copiar com CTRL+C e ele poder dar CTRL+V no Excel, por exemplo?

evertonsilvagomesjav

Isso mesmo Vini!!

ViniGodoy

Se as linhas tiverem selecionadas, você deve usar o TransferHandler do seu JTable e a classe Clipboard:

TransferHandler th = suaTable.getTransferHandler(); if (th != null) { Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); th.exportToClipboard(suaTable, cb, TransferHandler.COPY); }

ViniGodoy

Aliás, dá uma lida nesse artigo aqui: http://www.devx.com/Java/Article/22326

ViniGodoy

E nesse: http://www.javaworld.com/javaworld/javatips/jw-javatip77.html

evertonsilvagomesjav

Vou ler agora Vini vlw. Mas vendo aqui, isso seria pra transferir os dados, mas para poder “selecionar as linhas do JTable” seria do mesmo modo? Porque eu clicando em uma linha e dando ctrlc e ctrlv ja ta copiando sem eu mesmo ter feito nada, porem eu queria selecionar todas linhas ou seja toda á jTable pra copiar todas linhas de uma vez.

ViniGodoy

Ah bom, se vc quiser só um botãozinho de “selecionar tudo” na sua tabela, basta usar o método selectAll() do próprio JTable:

seuTable.selectAll();
evertonsilvagomesjav

[quote=ViniGodoy]Ah bom, se vc quiser só um botãozinho de “selecionar tudo” na sua tabela, basta usar o método selectAll() do próprio JTable:

seuTable.selectAll();

Humm seria isso porem era pra selecionar com o Mouse, por que ai se o usuario quiser selecionar “duas celulas” por exemplo ele conseguiria mas do mesmo jeito se ele quisesse selecionar “duas linhas” conseguiria do mesmo jeito, mas se num tiver como esse selectAll() ja vai me ajudar.

ViniGodoy

Aqui tem vários tipos de seleção.
http://www.exampledepot.com/egs/javax.swing.table/Sel.html

Como seria feita a seleção pelo mouse? Pq por padrão, clicar numa célula e arrasta-la pela tabela já faz a seleção sobre a tabela:

evertonsilvagomesjav

ViniGodoy:
Aqui tem vários tipos de seleção.
http://www.exampledepot.com/egs/javax.swing.table/Sel.html

Como seria feita a seleção pelo mouse? Pq por padrão, clicar numa célula e arrasta-la pela tabela já faz a seleção sobre a tabela:

A seleçao seria feita igual a seleçao do Excel mesmo clicando e arrastando em qualquer lugar da JTable.

ViniGodoy

Ué, e por padrão não é assim? :shock:

Podia jurar que era.

evertonsilvagomesjav

Ué, e por padrão não é assim? :shock:

Podia jurar que era.

Quando eu clico em alguma celula e arrasto nao aparece o sombreamento de seleçao, é como se eu fosse mover a celula de um lugar para outro ao invez de selecionar.

Criado 18 de junho de 2010
Ultima resposta 1 de jul. de 2010
Respostas 14
Participantes 3