TableColumnModel cm = tabela.getColumnModel();
for (int i = 0; i < MyTableModel.WIDTH.length; i++) {
cm.getColumn(i).setPreferredWidth(MyTableModel.WIDTH[i]);
}
Eu preciso que o texto de cada coluna no autofiltro(agora TableFilter) seja mostrado por completo(mesmo com 10 colunas, coloquei um scroll horizontal), e que suas colunas, sigam pelo menos o tamanho do respectivo header.
Se ele tiver em auto resize automático, não funciona mesmo.
Ironlynx
Claro!E fiz:
Lá dentro do código do SelectTable mesmo.
Ironlynx
Vini, eu descobri que o resize só funciona parcialmente.
Textos grandes, como “Data de cadastro”, aparece “Data …” no table filter.Já teve desse problema?
Marky.Vasconcelos
Eu fiz algumas alterações aqui e até que funcionou algumas coisas, roda esse teste com o jar em anexo e da uma olhada no comportamento.
importjava.awt.Font;importjava.util.List;importtest.model.Person;importtest.model.PreData;importcom.towel.collections.paginator.ListPaginator;importcom.towel.el.annotation.AnnotationResolver;importcom.towel.swing.event.ObjectSelectListener;importcom.towel.swing.event.SelectEvent;importcom.towel.swing.table.ObjectTableModel;importcom.towel.swing.table.SelectTable;publicclassSelectTableViewTest{publicstaticvoidmain(String[]args){ObjectTableModel<Person>model=newObjectTableModel<Person>(newAnnotationResolver(Person.class),"name:Extreme long name that will not fit the column header and a lot of random words to get more space,age:Age,live:Live");SelectTable<Person>st=newSelectTable<Person>(model,newListPaginator<Person>(PreData.getSampleList(100),20));st.setSelectionType(SelectTable.SINGLE);// st.setSize(400, 600);st.setFont(newFont("Arial",Font.ITALIC,12));// st.useTableFilter(); //Para ativar o TableFilter, chame issost.fitColumnsToHeader();st.showSelectTable();st.addObjectSelectListener(newObjectSelectListener(){@OverridepublicvoidnotifyObjectSelected(SelectEventselectevent){Personp=(Person)selectevent.getObject();System.out.println(p.getName());}});}}
E por mais que ele cresça, não sei por que, tanto o header normal quanto o do TableFilter cortam as ultimas letras.
Ironlynx
Marky.Vasconcelos, melhorou o comportamento SEM o table filter, mas com o table filter, continuo as reticências.E um detalhe: a ordenação tá bagunçada.
Clique em “decrescente” e ao invés de 19 a 0, tá de 9 a 2 .19 a 10, 1,0.E se por ordem crescente, bagunça de novo.Esse comportamento está apenas na PRIMEIRA coluna desse seu exemplo.
ViniGodoy
Você está retornando Integer.class para a coluna ou String.class? Essa ordem que vc falou é a de Strings.
Marky.Vasconcelos
É por que esse campo no modelo é uma String, e a da segunda coluna é um inteiro.
Vou ver se adicionando margin resolve.
Ironlynx
Ah, tá explicado.Ficou bacana poder desligar o autofiltro.
Ironlynx
Marky, uma pergunta:
Se vc precisa colar o SelectTable a um JFrame/JPanel da vida como vc faz(agora que eu li a declaração e vi que ela não extende nem um nem outro)?(No meu caso eu fiz retornar um Jframe)
Marky.Vasconcelos
Container c = selectTableConstruida.getContent();
//Dai coloca 'c' onde quiser
Uma coisa que eu não falei: Sempre que eu adiciono o SelectTable como um componente, ele sempre cria uma barra extra(vertical) o que acaba quebrando o layout da tela, mesmo com espaço de sobra.