gpt4 book ai didi

java - JTable 未显示列标题

转载 作者:行者123 更新时间:2023-11-30 03:50:20 25 4
gpt4 key购买 nike

我的这段代码有一点问题。我想显示一个带有列标题JTable,但问题是列的标题没有显示,因为屏幕截图 显示如下:

private static final String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String DB_CONNECTION = "jdbc:oracle:thin:@localhost:1521:DB";
private static final String DB_USER = "*******";
private static final String DB_PASSWORD = "********";
Connection conn = null;
Statement stmt = null;
static Vector<Vector<String>> dataJ, dataC, data;
Vector<String> columnJ,

public void getCleubJoueurData() {
data = new Vector<Vector<String>>();
colum = new Vector<String>();
colum.add("nom");
colum.add("nom_cleub");
colum.add("numero_maillot");
colum.add("nationalite");

String query = "SELECT joueur.NOM,CLEUB.NOM_CLEUB," +
"JOUEUR_CLEUB.NUMERO_MAILLOT, joueur.NATIONALITE " +
"FROM joueur JOIN JOUEUR_CLEUB ON joueur.ID_J=" +
"JOUEUR_CLEUB.ID_J JOIN CLEUB ON JOUEUR_CLEUB.ID_C=CLEUB.ID_C";

try {
try {
Class.forName(DB_DRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
Vector<String> vstring = new Vector<String>();
vstring.add(rs.getString("nom"));
vstring.add(rs.getString("nom_cleub"));
vstring.add(rs.getString("numero_maillot"));
vstring.add(rs.getString("nationalite"));

data.add(vstring);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
}
}
}
}

public App() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 882, 477);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBackground(Color.WHITE);
tabbedPane.setBounds(40, 43, 812, 390);
contentPane.add(tabbedPane);
JPanel panel = new JPanel();
tabbedPane.addTab("joueurs", null, panel, null);
panel.setLayout(null);

getJoueurData();
DefaultTableModel mode = new DefaultTableModel(data, column);

table = new JTable(model);
table.setToolTipText("");
table.setBounds(0, 94, 819, 269);
panel.add(table);

}

最佳答案

  1. 不要使用空布局。 (并且不要设置界限)

  2. 将表格包装在 JScrollPane 中。 JScrollPane 将显示标题。如果您不想使用 JScrollPane,那么您可以获取表格的 JTableHeader 并单独添加

以前:(使用 JScrollPane)

JPanel container = new JPanel();  // default FlowLayout
JScrollPane scrollPane = new JScrollPane(table);
//container.add(table); // don't add the table, just the JScrollPane
container.add(scrollPane);

后者:(没有 JScrollPane)

JPanel container = new JPanel(new BorderLayout());
container.add(table, BorderLayout.CENTER);
container.add(table.getTableHeader(), BorderLayout.PAGE_START);

关于java - JTable 未显示列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com