JTable控件, 怎么让以列为单位可以横向滚动?

Sylix 2004-04-23 12:13:41
JTable控件, 怎么让以列为单位可以横向滚动?
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yidengjiang 2004-04-24
  • 打赏
  • 举报
回复
希望我这个对你有用
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.*;

public class tableTest extends JFrame {

public static void main( String args[] )
{
new tableTest();

}
private Connection connection;
private Statement statement;
private ResultSet resultSet;
private ResultSetMetaData rsmd;
private JButton submitQuery;
private JTable table;

public tableTest()
{

super( "输入SQL语句,按提交按钮查看结果。" );
Container c = getContentPane();
c.setLayout( new BorderLayout() );

String url = "jdbc:odbc:空军国防生";
String username = "";
String password = "";
try
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
connection = DriverManager.getConnection(
url, username, password );
}

catch ( ClassNotFoundException cnfex )
{
System.err.println("装载 JDBC/ODBC 驱动程序失败。" );
cnfex.printStackTrace();
System.exit( 1 );
}

catch ( SQLException sqlex )
{
System.err.println( "无法连接数据库" );
sqlex.printStackTrace();
System.exit( 1 );
}


Vector columnHeads = new Vector();
Vector rows = new Vector();
try
{

String query = "SELECT * FROM studentsmessage";
statement = connection.createStatement();
resultSet = statement.executeQuery( query );
rsmd = resultSet.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
columnHeads.addElement( rsmd.getColumnName( i ) );
while ( resultSet.next() )
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
{
currentRow.addElement( resultSet.getString( i ) );
}
rows.addElement(currentRow);
}


}
catch ( SQLException sqlex )
{
sqlex.printStackTrace();
}

table = new JTable( rows, columnHeads );
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

try
{
for(int i = 0; i < rsmd.getColumnCount(); ++i )
{
TableColumn Col1 = table.getColumnModel().getColumn(i);
Col1.setPreferredWidth(100);
}
}
catch ( SQLException sqlex )
{
sqlex.printStackTrace();
}

JScrollPane scroller = new JScrollPane( table );
scroller.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
c.add( scroller, BorderLayout.CENTER );
//c.validate();

addWindowListener(
new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{

System.exit( 0 );
}
}
);
setSize( 500, 200 );

show();
}
}
qiuwanbin 2004-04-23
  • 打赏
  • 举报
回复
不知道你“以列为单位”什么意思,试试吧:
private JScrollPane tableScrollPane;
tableScrollPane=new JScrollPane(jTable);

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧