Jtable e combox

3 respostas
M

ola pessoal, tenho a seguinte table com combox :

modelo = new DefaultTableModel( dado , colu );   
			jTable1 = new JTable( modelo );  // linha e coluna
			//jTable1.setBounds(20, 20, 20, 20);  // posicao horizontal , posicao vertical , comprimento, altura
			jTable1.setVisible(true);  // tabela visivel
		    jTable1.getTableHeader().setReorderingAllowed(false); // trava colunas
		    jTable1.getTableHeader().setResizingAllowed(false);   // trava tamanho coluna
		    jTable1.getTableHeader().setBackground( Color.lightGray ) ;  // cor do fundo
		    jTable1.setForeground(Color.blue );  // cor da fonte
		    jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // seleciona apenas uma linha da tabela
		    jTable1.setGridColor( Color.black ); // cor das linhas internas
		    jTable1.setShowHorizontalLines(true) ;  // linhas horizontais
		    jTable1.setShowVerticalLines(true) ;  // linhas verticais
		    jTable1.setEnabled(true);  // editar dados da tabela - false não edita
		    jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);  // auto tamanho da tabela - para barra rolagem horizontal
		    
		    jTable1.getColumnModel().getColumn(0).setPreferredWidth( 500 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(1).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(2).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(3).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(4).setPreferredWidth( 120 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(5).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(6).setPreferredWidth( 300 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(7).setPreferredWidth( 130 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(8).setPreferredWidth( 50 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(9).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(10).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(11).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(12).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(13).setPreferredWidth( 50 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(14).setPreferredWidth( 50 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(15).setPreferredWidth( 130 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(16).setPreferredWidth( 130 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(17).setPreferredWidth( 500 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(18).setPreferredWidth( 200 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(19).setPreferredWidth( 400 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(20).setPreferredWidth( 80 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(21).setPreferredWidth( 100 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(22).setPreferredWidth( 50 );  // tamanho da coluna
		    jTable1.getColumnModel().getColumn(23).setPreferredWidth( 100 );  // tamanho da coluna

		    Vector linhas = new Vector();
		    for ( int linha = 0 ; linha < 1000 ; linha++ ) {
		    	modelo.addRow(linhas);
		    }

		    
		    String estados[] = { "AC" , "AL" , "AP" , "AM" , "BA" , "CE" , "DF" , "ES" , "GO" , "MA" , "MT" , "MS" , "MG" , "PA" , "PB" , "PE" , "PI" , "PR" , "RJ" , "RN" , "RS" , "RO" , "RR" , "SC" , "SP" , "SE" , "TO" };
		    jComboBox1 = new JComboBox(estados);
		    jComboBox1.setMaximumRowCount(10);
		    jTable1.getColumnModel().getColumn(20).setCellEditor(new DefaultCellEditor(jComboBox1));
	    
		    scrollPane1 = new JScrollPane(jTable1);
		    scrollPane1.setVisible(true);
		    scrollPane1.setBounds(20, 20, 650, 430);
		    scrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		    scrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

mas o combox so aparece no jtable quando eu clico na coluna e que eu defini, neste caso a coluna 20 - jTable1.getColumnModel().getColumn(20).setCellEditor(new DefaultCellEditor(jComboBox1));

como faco pra esse combo aparece ja quando a table eh “desenhada” no meu jframe, ou seja, nao quero clicar na coluna pra saber que esta coluna devo selecionar, e sim, ao visualizar a tabela inteira, ja sei quais colunas vou ter que selecionar …

3 Respostas

lina

Oi,
Da uma olha aqui…
pode ajudar:

http://www.guj.com.br/posts/list/13322.java

Tchauzin!

M

dei uma olhada nos links e nao achei nada …

tenho o mesmo problema para mascaras …

criei uma mascara para cpf numa determinada coluna …

mas a mascara so aparece quando eu clico sobre a coluna, e queria que ela aparecesse quando a tabela fosse “desenhada” …

indiao_uba

Estou estudando o caso, peguei seu código onde esta dando o problema e estou vendo se acho a solução…

Criado 4 de abril de 2007
Ultima resposta 5 de abr. de 2007
Respostas 3
Participantes 3