Redimensionar JTable

5 respostas
guirodr
Bem, não entendi nada que li aqui sobre isso. Uso DefaultTableModel porque não consigo usar nenhum outro, sou incapaz e já aceitei isso. Como eu redimensiono uma JTable? Segue abaixo o código:
public class TelaCadAutor extends JFrame {

    JLabel lblAutor, lblCodAutor, lblCodigo;
    JTextField txtAutor;
    JTable tblAutor;
    JButton bttCadastrar, bttLimpar, bttExcluir,bttAlterar;
    JPanel pnPrincipal, pnTabela, pnBotoes, pnCampos;
    DefaultTableModel modelo;
    JScrollPane scrAutor;
    String nome;
    int codigo;

    public TelaCadAutor(){
    super("Cadastrar Autor");
    setBounds(480,100,490,600);
    setLayout(new FlowLayout());
    

    lblAutor=new JLabel("Autor:");
    lblCodAutor=new JLabel("Código:");
    lblCodigo= new JLabel();
    txtAutor=new JTextField();
    tblAutor=new JTable();
    tblAutor.setMinimumSize(new java.awt.Dimension(200, 0));
    bttCadastrar=new JButton("Cadastrar");
     bttCadastrar.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){
                
        modelo.Autor autor=new modelo.Autor();
        autor.setNome(txtAutor.getText().trim());
        PerAutor perautor=new PerAutor();
        perautor.gravar(autor);
        gravar();
        limpar();
            }
        });
    bttLimpar=new JButton("Limpar");
     bttLimpar.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){
                limpar();
            }
        });
    bttExcluir=new JButton("Excluir");
     bttExcluir.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){
                PerAutor perautor=new PerAutor();
                perautor.excluir(codigo);

                ((DefaultTableModel) tblAutor.getModel()).removeRow(tblAutor.getSelectedRow());
                DefaultTableModel modelo=(DefaultTableModel) tblAutor.getModel();
                tblAutor.setModel(modelo);
                limpar();
            }
        });
    bttAlterar=new JButton("Alterar");
     bttAlterar.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){

                 PerAutor perautor=new PerAutor();
                nome=txtAutor.getText();
                perautor.alterar(nome,codigo,txtAutor);
                String[] linhas=new String[2];
                linhas[0]=String.valueOf(codigo);
                linhas[1]=nome;
                ((DefaultTableModel) tblAutor.getModel()).removeRow(tblAutor.getSelectedRow());
                DefaultTableModel modelo=(DefaultTableModel) tblAutor.getModel();
                modelo.addRow(linhas);
                tblAutor.setModel(modelo);
                limpar();
            }
        });
    pnPrincipal=new JPanel();
    pnTabela=new JPanel();
    pnBotoes=new JPanel();

    String[] titulo= new String[2];
    titulo[0]="Código";
    titulo[1]="Autor";
    modelo= new DefaultTableModel(titulo,0);
    tblAutor= new JTable (modelo);
    scrAutor= new JScrollPane (tblAutor);
        tblAutor.addMouseListener(new MouseListener(){
            public void mouseClicked (MouseEvent e){
                int selecionado = tblAutor.getSelectedRow();
                txtAutor.setText(String.valueOf(tblAutor.getValueAt(selecionado,1)));
                lblCodigo.setText((String) tblAutor.getValueAt(selecionado,0));
                codigo=Integer.parseInt(lblCodigo.getText());
                nome=txtAutor.getText();
            }
            public void mousePressed(MouseEvent e) {}
            public void mouseReleased(MouseEvent e) {}
            public void mouseEntered(MouseEvent e) {}
            public void mouseExited(MouseEvent e) {}

        });
    txtAutor.addMouseListener(new MouseListener(){
            public void mouseClicked (MouseEvent e){
                String sql="select MAX(codigo) from Autores";
                try{
                        Connection conn=Conexao.getConexao();
                        PreparedStatement pst=conn.prepareStatement(sql);
                        ResultSet rs=pst.executeQuery();
                        int max = 0;

                        while(rs.next()){
                           max=Integer.parseInt(rs.getString(1));

                        }

                        lblCodigo.setText(String.valueOf(max+1));

                }catch(Exception j){
                  System.out.println("Erro ao contar livro "+j.toString());
                }
                        }
                        public void mousePressed(MouseEvent e) {}
                        public void mouseReleased(MouseEvent e) {}
                        public void mouseEntered(MouseEvent e) {}
                        public void mouseExited(MouseEvent e) {}
        });
   
    pnCampos=new JPanel();
    pnTabela= new JPanel ();
    pnTabela.setSize(200,200);
    pnTabela.setLayout(new GridLayout(1,1));
    scrAutor.setSize(300, 200);
    pnTabela.add(scrAutor);
    pnBotoes.setLayout(new GridLayout(1,4));
    pnBotoes.add(bttCadastrar);
    pnBotoes.add(bttExcluir);
    pnBotoes.add(bttAlterar);
    pnBotoes.add(bttLimpar);
    pnCampos.setLayout(new GridLayout(2,2));
    pnCampos.add(lblAutor);
    pnCampos.add(txtAutor);
    pnCampos.add(lblCodAutor);
    pnCampos.add(lblCodigo);
    pnPrincipal.setLayout(new GridLayout(3,1));
    pnPrincipal.add(pnCampos);
    pnPrincipal.add(pnBotoes);
    
    add(pnPrincipal);
    add(pnTabela);
    listar();
//    setarautores();
    }
   public void gravar(){
    modelo= (DefaultTableModel) tblAutor.getModel();
    setarautores();
    String[] linha=new String[2];
           linha[0]=lblCodigo.getText().trim();
           linha[1]=txtAutor.getText().trim();
           modelo.addRow(linha);
           tblAutor.setModel(modelo);
}
public void limpar(){
txtAutor.setText(null);
lblCodigo.setText(null);
}
public final void listar(){
 PerAutor perautor=new PerAutor();
 ArrayList<Autor> autores=new ArrayList<Autor>();
 autores=perautor.listar();
 DefaultTableModel model=(DefaultTableModel) tblAutor.getModel();
 for(int i=0;i<autores.size();i++){
    String[] linhas=new String[2];
                linhas[0]=String.valueOf(autores.get(i).getCodigo());
                linhas[1]=autores.get(i).getNome();

                model.addRow(linhas);
 }
                tblAutor.setModel(model);
            }
    




public final void setarautores(){
     String sql="select MAX(codigo) from Autores";
    try{
            Connection conn=Conexao.getConexao();
            PreparedStatement pst=conn.prepareStatement(sql);
            ResultSet rs=pst.executeQuery();
            int max = 0;

            while(rs.next()){
               max=Integer.parseInt(rs.getString(1));

            }

            lblCodigo.setText(String.valueOf(max));
    }catch(Exception e){
      System.out.println("Erro ao contar livro "+e.toString());
    }
}

     public static void main(String args[]){
        TelaCadAutor telaCadAutor= new TelaCadAutor();
        telaCadAutor.setDefaultCloseOperation(HIDE_ON_CLOSE);
        telaCadAutor.setVisible(true);

    }
}

5 Respostas

d34d_d3v1l

Não existe essa de “não ser capaz”…
Dá uma olhadinha no meu nick e aprenda a usar um tableModel descente!

outra coisa[…] existem vários posts aqui sobre isso… pq nao da uma procurada?
abraços

guirodr

Eu procurei e não consegui fazer no meu, fiz o que dizia e dava errado. E SIM, EU SOU INCAPAZ, ja tentei aprender sobre, mas como é trabalho de escola mesmo, o DTM já me alivia já.

guirodr

A tela que eu quero diminuir a JTable.

ViniGodoy

Se você é incapaz, é incapaz também de redimensionar o JTable.
Sorry, infelizmente o mundo é dos capazes.

Agora, se quiser fazer um TableModel direito, vai postando o que você tentou aqui e perguntando, que te explicamos como funciona. Pode escrever que erros deu, e nós explicamos o pq.

guirodr

Consegui redimensionar a JTable já, grato. E com relação ao Model, bem, eu já vi que vou ter que encara-lo de frente, já peguei algumas coisas pra estudar, qualquer coisa eu volto aqui. Obrigado novamente.

Criado 22 de abril de 2011
Ultima resposta 23 de abr. de 2011
Respostas 5
Participantes 3