Ele é um JPanel dentro de um JScrollPane. Cada linha deste grid é uma classe que estende um JPanel e monta os componentes da linha.
Eu tenho um problema com foco e rolagem neste caso. Qndo o foco vai pra um componente escondido, ele não aparece automaticamente, e a rolagem é muito lerda.
Eu pensei então em usar um JTable.
Vocês crêem que eu possa fazer o mesmo tipo de grid?
Sendo que algumas colunas não serão editáveis, o botão da primeira coluna deve abrir um tela pra eu selecionar o produto, que vai preencher as colunas Produto e Descrição, e deverá haver uma opção para remover linhas ou adicionar novas.
Então, ainda não tinha lido o How To sobre JTable. Só acho que vou apanhar um bocado.
brlima
kd a tela ???!!! :shock:
Eu tenho telas que uso JTables ( qdo pode aparecer somente uma linha ) ou faço mais ou menos isso Daniel: eu fixo o numero de registros na tela ( so mostro os campos visiveis ), depois tenho uma classe para trabalhar com o que deve ser mostrado. Isso vale qdo o numero de linhas de um registro é mais que 1. Mais ou menos assim
Codigo:
Nome
Codigo
Nome
Codigo
Nome
Mas a Jtable nao eh tao complicada assim nao. Uma vez feito tudo pra ela, fica facil mexer nela.
Abraços!
danieldestro
Deve ser problema do GUJ, pois a imagem existe sim.
brlima
Êê guj… rsss :shock: :twisted:
danieldestro
Pessoal,
Meu grid (JTable) tá rolando… o problema foi que não achei nada relativo a como fazer aquele botão (lado esquerdo do grid na imagem).
É o seguinte. O cara pode tanto digitar o cód. do produto direto ou então clicar em um botão que abre uma tela de pesquisa e joga o cód. selecionado para a celula.
Alguém sabe uma boa maneira de se fazer isso?
TedLoprao
Cara, uma época rolava por ai um link com exemplos swing, e nesses existia muita coisa legal usando JTables, talvez ele te resolvam… Infelizmente eu não tenho mais o link, mas peguei aqui no guj…
Se tu não achar, eu posso te mandar um mail com os exemplos, que na época eu peguei os mesmos no site…
Fallow
dukejeffrie
Daniel, o trash de usar botão dentro da tabela é que vc tem que fazer tudo na mão…
Vc tem que criar um TableCellRenderer que pinte o botão, e um CellEditor que abra a janela. É chato, mas rola.
Tem um tutorial aqui no guj sobre renderers, não lembro se fala de editors. Além disso, tem o velho “How to Use Tables” da Sun que tem um capítulo sobre isso…
eu sei que eu já fiz isso, então vai com fé que dá!
[]s!!
I
isaac
Olá…
"Vc tem que criar um TableCellRenderer que pinte o botão, e um CellEditor que abra a janela. É chato, mas rola. " --> dukejeffrie
Realmente, o que você quer fazer é possível e também não é tão dificil assim… use o que dukejeffrie falou… como ele mesmo disse é meio chato.
Mas fiz várias aplicações com tabelas semelhantes a que você quer e fica bem legal…e também não fica tão pesado…
Se quiser um exemplo é só pedir…
Flw…
danieldestro
Pode, por favor, disponibilizar os exemplos?
Obrigado!
Ironlynx
Reforçando o pedido do DanielDestro,
pode postar/disponibilizar o código para uma olhada! 8)
Daniel_Quirino_Olive
Dá uma olhada no SwingSet Demo, uma aplicação de demonstração do JFC que está em JAVA_HOME/demo/jfc/swingset/
I
isaac
Dae…
Esse é um exemplo com JButton… mas vocês podem fazer com qualquer componente…
qualquer dúvida só fala…
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjavax.swing.table.*;importjava.util.*;publicclassMeuJTableextendsJTable{privateJButtonbutton=newJButton("...");/* Crie os construtores que achar necessário... Esse construtor é só um exemplo para mostrar com chamar o botão... */publicMeuJTable(){super(newVector(),newVector());getColumn("nome da coluna").setCellRenderer(newButtonCellRenderer());getColumn("nome da coluna").setCellEditor(newButtonCellEditor());}classButtonCellRendererextendsDefaultTableCellRenderer{publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){returnbutton;}}classButtonCellEditorimplementsTableCellEditor{publicComponentgetTableCellEditorComponent(JTabletable,Objectvalue,booleanisSelected,introw,intcolumn){returnbutton;}publicObjectgetCellEditorValue(){returnbutton;}publicbooleanisCellEditable(EventObjectanEvent){returntrue;}publicbooleanshouldSelectCell(EventObjectanEvent){returnfalse;}publicbooleanstopCellEditing(){returntrue;}publicvoidcancelCellEditing(){}publicvoidaddCellEditorListener(CellEditorListenerl){}publicvoidremoveCellEditorListener(CellEditorListenerl){}}}
dukejeffrie
Pô, tem uns renderers no tutorial do GUJ!! : )
[]s
danieldestro
.
kinow
Hehehehe, tanta gente extendendo TableModels e você refez uma tabela cheia de JPanels hehehehe, achei legal, valeu a prática.
danieldestro
Considerando que foi há 2 anos atrás e foi minha primeira experiência com Swing.
Eu só não tinha noção de como (se podia) fazer uma tabela que tivesse um campo com preenchimento e um botão para busca. Implementando um renderer dá certo.