Tamanho da coluna (jTable)

2 respostas
pedroroxd

Pessoal, estou com uma jTable, que puxa os dados do banco de dados.
Ela Tem campos como Data, Cliente, Pedido e Total…
Eu queria setar o tamanho da coluna data (para ela ficar menor), e deixar o “Pedido” maior.
Como posso fazer isso?

Abaixo está o código da Tabela:

private void refreshtabela() throws ClassNotFoundException, SQLException{
       final DefaultTableModel modelo = new DefaultTableModel() {

      public boolean isCellEditable (int row, int col){
          return false;
      }

 };
    // Cria as colunas
    modelo.addColumn("Data"); //menor
    modelo.addColumn("Cliente");
    modelo.addColumn("Pedido"); //maior
    modelo.addColumn("Total");

   ConectaBanco k = new ConectaBanco();
   Connection conec = null;
   conec = k.conecta();
   criatabelaus(conec, modelo); //Pega os dados do banco de dados para jogar na tabela "modelo"

    jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    jTable1.setModel(modelo);
}

Agradeço desde já.

2 Respostas

G

eu faco asssim (uso dicionario de dados), mas veja se pode aproveitar alguma coisa:

//////////////////////////////////////// browse ////////////////////////////////
        SystLib oSystLib = new SystLib();
        cQuery  = "select * from sy3"+SystRmt.aUsuario[6]+"0 where sy3_alias = '"+Alias+"' order by sy3_folder,sy3_ordem ";
        oTopBrw.ConectaBanco(false);
        oTopBrw.execQuery(cQuery);
        while( oTopBrw.oResultset.next() ) {
            int nLargura = 10;
            if ( oTopBrw.oResultset.getString("sy3_cbox1").trim().isEmpty() ){
                if ( Integer.parseInt( oTopBrw.oResultset.getString("sy3_tamanho") ) > oTopBrw.oResultset.getString("sy3_titulo1").trim().length() ) {
                    nLargura = Integer.parseInt( oTopBrw.oResultset.getString("sy3_tamanho") ) * 8;
                }else {
                    nLargura = oTopBrw.oResultset.getString("sy3_titulo1").trim().length() * 8;
                }
            }else {
                nLargura = SystLib.TamMaxCBox( oTopBrw.oResultset.getString("sy3_cbox1").trim() , oTopBrw.oResultset.getString("sy3_titulo1").trim() );
            }
            aStructSX3.add(new EstrutSX3(   oTopBrw.oResultset.getString("sy3_campo").trim() ,
                                            oTopBrw.oResultset.getString("sy3_propri") ,
                                            oTopBrw.oResultset.getString("sy3_ordem") ,
                                            oTopBrw.oResultset.getString("sy3_titulo1").trim() ,
                                            oTopBrw.oResultset.getString("sy3_tipo") ,
                                            Integer.parseInt(oTopBrw.oResultset.getString("sy3_tamanho")) ,
                                            Integer.parseInt(oTopBrw.oResultset.getString("sy3_decimal")) ,
                                            nLargura ,
                                            oTopBrw.oResultset.getString("sy3_usado") ,
                                            Integer.parseInt(oTopBrw.oResultset.getString("sy3_nivel")) ,
                                            oTopBrw.oResultset.getString("sy3_incalt") ,
                                            oTopBrw.oResultset.getString("sy3_picture").trim() ,
                                            oTopBrw.oResultset.getString("sy3_f3") ,
                                            oTopBrw.oResultset.getString("sy3_browse") ,
                                            oTopBrw.oResultset.getString("sy3_visual") ,
                                            oTopBrw.oResultset.getString("sy3_senha") ,
                                            oTopBrw.oResultset.getString("sy3_virtual") ,
                                            oTopBrw.oResultset.getString("sy3_obrigat") ,
                                            oTopBrw.oResultset.getString("sy3_folder") ,
                                            oTopBrw.oResultset.getString("sy3_zeroesq") ,
                                            oTopBrw.oResultset.getString("sy3_show") ,
                                            oTopBrw.oResultset.getString("sy3_inicpad").trim() ,
                                            oTopBrw.oResultset.getString("sy3_cbox1").trim() ,
                                            oTopBrw.oResultset.getString("sy3_valid").trim() ,
                                            oTopBrw.oResultset.getString("sy3_vlduser").trim() ) );
            if ( oTopBrw.oResultset.getString("sy3_browse").toUpperCase().equals("S") ) {
                nQtaColBrw ++;
            }
        }
        int nLarBrw = oAbaMnt.width-130;
        int nAltBrw = oAbaMnt.height-55;
        oBrwScroll = new JScrollPane();
        oBrwMnt = new JTable();
        oBrwMnt.setModel(new DefaultTableModel( new Object [][] {} , HeaderBrw() ) {
            boolean[] canEdit = DisableEditBrw() ;
            @Override
            public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }
        );

        ////////////////////////////////// largura das colunas do Brw //////////////////////////////////
        int nColBrw = aStructSX3.size();
        if ( nQtaColBrw > 0 && nColBrw > 0 ) {
            int nLinhaBrw = 0;
            EstrutSX3[] aSX3Tmp = new EstrutSX3[ nColBrw ];
            for ( int h=0 ; h<nColBrw ; h++ ) {
                aSX3Tmp[h] = (EstrutSX3) aStructSX3.get(h);
                if ( aSX3Tmp[h].Browse.toUpperCase().equals("S") ) {
                    oBrwMnt.getColumnModel().getColumn(nLinhaBrw).setPreferredWidth( aSX3Tmp[h].Largura );
                    nLinhaBrw ++;
                }
            }
            aSX3Tmp = null;
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////

        oBrwMnt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        oBrwMnt.setColumnSelectionAllowed(false); // linha toda ou celula.
        oBrwMnt.setDebugGraphicsOptions(DebugGraphics.NONE_OPTION);
        oBrwScroll.setViewportView(oBrwMnt);

        ///////////////////////////////////// registros do Brw /////////////////////////////////////
        oBrwLin = (DefaultTableModel) oBrwMnt.getModel();
        oBrwLin.setNumRows(0);
        if ( nColBrw > 0 ) {
            cQuery  = "select * from "+oSystLib.RetSQLName(Alias)+" where "+Alias+"_filial = '"+oSystLib.xFilial(Alias)+"' and d_e_l_e_t = ''";
            oTopBrw.ConectaBanco(false);
            oTopBrw.execQuery(cQuery);
            while( oTopBrw.oResultset.next() ) {
                String aColsBrw [] = new String [nQtaColBrw];
                if ( nQtaColBrw > 0 ) {
                    int nLinhaBrw = 0;
                    EstrutSX3[] aSX3Tmp = new EstrutSX3[ nColBrw ];
                    for ( int h=0 ; h<nColBrw ; h++ ) {
                        aSX3Tmp[h] = (EstrutSX3) aStructSX3.get(h);
                        if ( aSX3Tmp[h].Browse.toUpperCase().equals("S") ) {
                            String kCampo = aSX3Tmp[h].Campo.trim();
                            if ( aSX3Tmp[h].Combo.trim().isEmpty() ){
                                aColsBrw[nLinhaBrw] = oTopBrw.oResultset.getString( kCampo )  ;
                            }else {  // combobox.
                                aColsBrw[nLinhaBrw] = oSystLib.ShowDescrOpcCombo( oTopBrw.oResultset.getString( kCampo ) , oSystLib.DescrOpcComboSX3(kCampo) ) ;
                            }
                            nLinhaBrw ++ ;
                        }
                    }
                    aSX3Tmp = null;
                }
                oBrwLin.addRow( aColsBrw );
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////
        oTopBrw = null;
        oSystLib = null;

        oLayMnt = new GroupLayout( getContentPane() );
        getContentPane().setLayout(oLayMnt);
        oLayMnt.setHorizontalGroup(
            oLayMnt.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(oLayMnt.createSequentialGroup()
                .addGap(nLarBrw,nLarBrw,nLarBrw)
                .addComponent(oBrwScroll, GroupLayout.PREFERRED_SIZE, nLarBrw, GroupLayout.PREFERRED_SIZE)
                .addContainerGap(nLarBrw, Short.MAX_VALUE))
        );
        oLayMnt.setVerticalGroup(
            oLayMnt.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(oLayMnt.createSequentialGroup()
                .addGap(nAltBrw,nAltBrw,nAltBrw)
                .addComponent(oBrwScroll, GroupLayout.PREFERRED_SIZE, nAltBrw, GroupLayout.PREFERRED_SIZE)
                .addContainerGap(nAltBrw, Short.MAX_VALUE))
        );
        pack();
        oBrwScroll.setBounds(125,25,nLarBrw,nAltBrw);
        oDlgBrw.add(oBrwScroll);
        ////////////////////////////////////////////////////////////////////////////////
G

altere o tamanho da coluna desta forma:

jTable1.getColumnModel().getColumn(1).setPreferredWidth(300);
Criado 8 de outubro de 2009
Ultima resposta 8 de out. de 2009
Respostas 2
Participantes 3