Tem como controlar o tamanho da tabela usando layout managers?

E ae galera, blz?

To usando um BorderLayout no meu frame aki, mas a tabela fica MTO grande, e acaba usando o espaço de um panel q eu precisava q fosse exibido.

Tem como eu limitar o tamanho da minha tabela, pra mim o ideal seria um a tabela de 3 x 2.

Soh q eu fazer isso, ela realmente fica 3 x 2, mas fica uma borda envolta dela q ocupa MTO espaço.

Alguém sabe como resolver isso?

valeu

Percebi q eh o ScrollPane q faz isso, quando naum coloko scrollPane a tabela vem do tamanho adequado ( relativo a uma consulta em banco de dados ) .

Quando coloco o scroll ela vem gigante, ocupando um espaço q naum deveria.

Alguma dica?

Grave, posta o código ai que posso tentar te ajudar de alguma maneira. Ultimamente tomei umas porradas com esses tipos de ajuste e consegui resolver fazendo umas pequans mudanças, ou armengues, ainda não sei…haha. Acredito que foram pequenos ajustes. :stuck_out_tongue:

Então kra, olha meu tableModel:


import java.sql.*;
import javax.swing.table.*;

public class ResultSetTableModel extends AbstractTableModel {
	private Connection connection;
	private Statement statement;
	private ResultSet resultSet;
	private ResultSetMetaData metaData;
	private int colunasDaTabela;
		
	public ResultSetTableModel ( int number )
		throws SQLException, ClassNotFoundException
	{
		
		String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
		
		String url = "jdbc:odbc:Ocorrencias";
		
		Class.forName ( driver );
		
		
		connection = DriverManager.getConnection ( url, "", "" );
		
		
		statement = connection.createStatement ( 
				ResultSet.TYPE_SCROLL_INSENSITIVE,
				ResultSet.CONCUR_READ_ONLY );
		
		String query = "SELECT Data, Ocorrencia FROM Ocorrencias " +
				"WHERE Id = " + number + " ORDER BY Data DESC";
		
		setQuery ( query );
	}
	
	
	public Class getColumnClass ( int column )
	{
		
		try { 
			String className = 
				metaData.getColumnClassName ( column + 1 );
			
			
			return Class.forName ( className );
		}
		
		
		catch ( Exception ex ) {
			ex.printStackTrace();
		}
		
		
		return Object.class;
	}
	
	
	public int getColumnCount()
	{
		
		try { 
			return metaData.getColumnCount();
		}
		
		
		catch ( SQLException sqle ) {
			System.err.println ( sqle.getMessage() );
		}
	
		
		return 0;
	}
	
	
	public String getColumnName ( int column )
	{
		
		try { 
			return metaData.getColumnName ( column + 1 );
		}
		
		
		catch ( SQLException sqle ) {
			System.err.println ( sqle.getMessage() );
		}
		
		
		return "";
	}
	
	
	public int getRowCount()
	{
		return colunasDaTabela;
	}
	
	
	public Object getValueAt ( int row, int column )
	{
		
		try {
			resultSet.absolute ( row + 1 );
			
			return resultSet.getObject ( column + 1 );
		}
		
		
		catch ( SQLException sqle ) {
			System.err.println ( sqle.getMessage() );
		}
		
		
		return "";
	}
	
	
	protected void finalize()
	{
		
		try { 
			statement.close();
			connection.close();
		}
		
		
		catch ( SQLException sqle ) {
			System.err.println ( sqle.getMessage() );
		}
	}
	
	
	public void setQuery ( String query ) throws SQLException
	{
		
		resultSet = statement.executeQuery ( query );
		
		
		metaData = resultSet.getMetaData();
		
		
		resultSet.last();
		colunasDaTabela = resultSet.getRow();
		
		
		fireTableStructureChanged();
	}
}

Não tenho idéia de onde colocar um scroll ae,huaihiahai

[]'s

Opa, consegui o q eu queria.

Usei um SplitPane e dividi a tela da maneira q eu queria e adicionei a table na parte certa.

Viva o Split Pane!