Aumentar Tamanho da JTable

15 respostas
C

Tipo eu n consigo eu mudo q pode-se mudar e nd… ela fica com um tamanho fixo…
Como faço pra aumenta-la pq a colunas mesmo eu diminuindo fica horrivel de ver…

[URL=http://img146.imageshack.us/my.php?image=tablefi3.jpg][/URL]

se Alguem puder da uma força ai valeu

15 Respostas

I

Mostra o código.
Tá usando algum gerenciador de layout?

Se o gerenciador for null tu pode usar:

JTable tabela = new JTable();
JScrollPane scroll = new JScrollPane();

tablea.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Título 1", "Título 2", "Título 3", "Título 4"
            }
        ));
        scroll.setViewportView(tabela);
        scroll.setBounds(PosicaoX, posicaoY, TamanhoX, TamanhoY);
R

Primeiro, desabilite o auto-resize:

jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
// Veja as outras opções que se adequam melhor ao que você quer...

Depois é só alterar o tamanho da coluna desejada:

jTable.getColumnModel().getColumn(0).setPreferredWidth(200);

Assim você utilizará o scroll horizontal…

C

bom ta ai…

JTable table;
	JScrollPane spane;
	JButton B1;
	JTextField tx1;
	String [] title = {"Id","Nome","Endereço","Cargo","Salario","Cpf","DataNasc"};
	JPanel panel;
	Connection c = ConnectionFactory.CriarConexao();

	public Buscar() throws SQLException{
		setBounds(40, 50, 800, 600);
		
		panel = new JPanel();
		panel.setBounds(0,60,800,600);
		
		tx1 = new JTextField();
		tx1.setBounds(30, 10, 100, 20);
		
		B1 = new JButton("LOL");
		B1.setBounds(140, 10, 100, 20);
		B1.addActionListener(this);		
		table = new JTable();
		table.setBounds(100,40,800,400);
		
		table.setFillsViewportHeight(true);
		spane = new JScrollPane(table);
		
		getContentPane().setLayout(null);
		getContentPane().add(panel);
		panel.add(spane);
		getContentPane().add(B1);
		getContentPane().add(tx1);
		
	}
	
	public void lol(){
		DefaultTableModel model = new DefaultTableModel(null,title);
		table.setModel(model);
		Cliente cliente = new Cliente();
	    try {       
	    	String sql = "Select * From Funcionario where nm_Func like ?";
	    	PreparedStatement ps = c.prepareStatement(sql);
	    	ps.setString(1, tx1.getText() + "%");
	       ResultSet rs = ps.executeQuery();
	       while(rs.next()){
	    	   String[] dados = new String[7];
	    	   dados[0] = rs.getString("cd_Func");
	    	   dados[1] = rs.getString("Nm_Func");
	    	   dados[2] = rs.getString("End_Func");
	    	   dados[3] = rs.getString("Cargo_Func");
	    	   dados[4] = rs.getString("Salario_Func");
	    	   dados[5] = rs.getString("Cpf_Func");
	    	   dados[6] = rs.getString("Dt_Nasc_Func");
	   
	    	   
	        model.addRow(dados);    
	        table.setRowHeight(15);
	        table.getColumnModel().getColumn(0).setPreferredWidth(2);
	        table.getColumnModel().getColumn(1).setPreferredWidth(15);
	        table.getColumnModel().getColumn(2).setPreferredWidth(20);
	        table.getColumnModel().getColumn(3).setPreferredWidth(5);
	        table.getColumnModel().getColumn(4).setPreferredWidth(2);
	        table.getColumnModel().getColumn(5).setPreferredWidth(10);
	        table.getColumnModel().getColumn(6).setPreferredWidth(20);
	       
	        
	        }       
	        rs.close();       
	       ps.close();
	    }
	    catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
C

Entao Raul… Com esse barato q vc passo fico melhor d manipula as colunas mas a table continua do mesmo tamanho

I

Olhando rápidamente o teu código eu acho que faltou só setar o tamanho do spane,

spane.setBounds(1,1,1,1);

se não funcionar tenta tirar a table do construtor do spane e faz um

spane.setViewportView(table);
C

Ta fogo n vai -/

I

Vou dar a minha útima cartada, se não funfar só com o código inteiro ou com um pedaço compilável pra eu olhar com mais calma no eclipse.

panel.setLayout(null);
M

Você quer setar o tamanho da jtable?Se sim, caso esteja usando o jscrollpane. você seta ele do tamanho que quiser ele seja exibido!!

C

Bom o codigo todo ta ali no post mais pra cima so olha -d…

Sim eu to usando scroll e claro q ja tentei mudar o size dele. e n deu…

ja tentei jogar num panel como disse o amigo mas tb n deu…

ja procurei metodo em todo canto e nd…

será q alguem tem como fazer um table grandona e me posta o codigo pra ve o q tem de errado no meu…

I

Código gerado pelo netbeans:

private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        getContentPane().setLayout(null);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jPanel1.setLayout(null);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Título 1", "Título 2", "Título 3", "Título 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jPanel1.add(jScrollPane1);
        jScrollPane1.setBounds(30, 30, 340, 200);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(0, 0, 400, 300);

        pack();
    }
C

Eu dei uma arrumadinha nele pra fica mais legivel mas n aparece nda…

JPanel p1;
	JScrollPane jpane;
	JTable table;
	
	public LoL(){
		setBounds(0, 0, 1000, 768);
		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);   

		table = new JTable();
		table.setModel(new javax.swing.table.DefaultTableModel(   
            new Object [][] {   
                {null, null, null, null},   
                {null, null, null, null},   
                {null, null, null, null},   
                {null, null, null, null}   
            },   
            new String [] {   
                "Título 1", "Título 2", "Título 3", "Título 4"   
            }   
        ));
		jpane = new JScrollPane();
		jpane.setViewportView(table);
		
		p1 = new JPanel();
		p1.add(jpane);   
		p1.setLayout(null);   
		p1.setBounds(30, 30, 340, 200);
		
		getContentPane().setLayout(null);
		getContentPane().add(p1);
		p1.setBounds(0, 0, 400, 300);  
		
	}
I

Eu abstrai as partes padrões mais vai ai tudo:

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

/**
 *
 * @author  ivo.costa
 */
public class teste extends javax.swing.JFrame {
    
    JPanel p1;
    JScrollPane jpane;
    JTable table;
    
    public teste(){
        table = new JTable();
        jpane = new JScrollPane();
        p1 = new JPanel();
        
        getContentPane().setLayout(new java.awt.FlowLayout());
        p1.setLayout(null);
        p1.setPreferredSize(new java.awt.Dimension(400, 300));
        
        table.setModel(new javax.swing.table.DefaultTableModel(   
                new Object [][] {   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null}   
                },   
                new String [] {   
                        "Título 1", "Título 2", "Título 3", "Título 4"   
                }   
        ));
        jpane.setViewportView(table);
        p1.add(jpane);
        jpane.setBounds(0, 0, 340, 200);
        
        getContentPane().add(p1);
        
        pack();
    }
    
    public static void main(String args[]) {
        new teste().setVisible(true);
    }
}
C

Valeu amigo agora deu e de uma forma q eu entendi…

=D

C

Vc sabe como tipo eu kero mostrar so 10 linhas …

se souber blz se nao do uma procurada

I

Eu te aconselho a baixar o netbeans e mecher um pouco nele sempre quando eu tenho ma dúvida em uma tela ou vou fazer uma tela um pouco mais complexa eu abro ele crio ela. Procura na net tuto sobre o netbeans e baixa ele é muito útil pra fazer telas com o editor gráfico dele (matisse).

é só aumentar o número de linhas no contrutor da tabela:

table.setModel(new javax.swing.table.DefaultTableModel(   
                new Object [][] {   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null},   
                        {null, null, null, null}
                },   
                new String [] {   
                        "Título 1", "Título 2", "Título 3", "Título 4"   
                }   
        ));
Criado 7 de abril de 2008
Ultima resposta 8 de abr. de 2008
Respostas 15
Participantes 4