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?
knop
Agosto 9, 2005, 5:14pm
#3
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.
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!