要想顯示 JTable 需要把 JTable 先添加 JScroolPane 控件中,然后再把這個 JScrollPane 添加到 JFrame 或其他容器控件中才能顯示。

創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計制作、成都做網(wǎng)站網(wǎng)站策劃,項目實(shí)施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元天鎮(zhèn)做網(wǎng)站,已為上家服務(wù),為天鎮(zhèn)各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
在上面的代碼中,在 table.invalidate() 后面添加如下代碼:
this.add(new?JScrollPane(table),?BorderLayout.CENTER);
完整代碼如下:
import?java.awt.BorderLayout;
import?javax.swing.JFrame;
import?javax.swing.JScrollPane;
import?javax.swing.JTable;
import?javax.swing.table.DefaultTableModel;
import?javax.swing.table.TableColumn;
public?class?App76?extends?JFrame?{
public?App76()?{
this.setSize(600,?400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[]?headers?=?{?"表頭一",?"表頭二",?"表頭三"?};
Object[][]?cellData?=?null;
DefaultTableModel?model?=?new?DefaultTableModel(cellData,?headers)?{
public?boolean?isCellEditable(int?row,?int?column)?{
return?false;
}
};
JTable?table?=?new?JTable(model);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn?firsetColumn?=?table.getColumnModel().getColumn(0);
firsetColumn.setPreferredWidth(30);
firsetColumn.setMaxWidth(30);
firsetColumn.setMinWidth(30);
DefaultTableModel?tableModel?=?(DefaultTableModel)?table.getModel();
int?count=3;
tableModel.setColumnCount(count);
table.setRowHeight(20);
tableModel.setRowCount(0);
String[]?arr={"aaaaa","bbbbbb","cccccc"};
tableModel.addRow(arr);
table.invalidate();
this.add(new?JScrollPane(table),?BorderLayout.CENTER);
}
public?static?void?main(String[]?args)?{
new?App76().setVisible(true);
}
}
我改了一下,試試
import java.awt.Dimension;
import javax.swing.*;
public class UseJTableAndJTree extends JFrame {
public UseJTableAndJTree() {
String[] columnNames = { "Product", "Number of Boxes", "Price" };
Object[][] data = { { "Apples", new Integer(5), "5.00" },
{ "Oranges", new Integer(3), "6.00" },
{ "Pears", new Integer(2), "4.00" },
{ "Grapes", new Integer(3), "2.00" }, };
JTable jtable = new JTable(data, columnNames);//JTable是使用data和columnNames構(gòu)成的:
jtable.setPreferredScrollableViewportSize(new Dimension(500, 500));//設(shè)置寬度和高度
this.getContentPane().add(jtable);
this.setTitle("運(yùn)用表和樹的例子");
}
public static void main(String a[]) {
UseJTableAndJTree ujt = new UseJTableAndJTree();
ujt.setSize(500, 500);
ujt.show();
}
}
我調(diào)了一下,覺得是那個 JScrollPane初始化問題,64~66行左右。改動下面三行代碼
JScrollPane scrollPane = new JScrollPane(table); //直接用table初始化JScrollPane
scrollPane.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
// scrollPane.add(table); 此句注釋或刪掉。
我在做一個玩意,你的倒是啟發(fā)我了
dm是model啊,怎么往model里加集合呢,應(yīng)該加到data這個集合里
public void setTable(ResultSet rs) throws SQLException{
VectorString title=new VectorString();
title.add("姓名");
title.add("性別");
title.add("生日");
title.add("關(guān)系");
title.add("電子郵件");
title.add("所在學(xué)校");
title.add("家庭住址");
title.add("備注");
VectorVectorString data=new VectorVectorString();
VectorString d=new VectorString();
while(rs.next()){
d.add(rs.getString("name"));
d.add(rs.getString("sex"));
d.add(rs.getString("brithday"));
d.add(rs.getString("relatuion"));
d.add(rs.getString("email"));
d.add(rs.getString("school"));
d.add(rs.getString("adress"));
d.add(rs.getString("other"));
data.add(d);
d.clear();
}
DefaultTableModel dm=new DefaultTableModel(title,data);
table=new JTable(dm);
tabpane.setViewportView(table);
}
試試吧
我按照你的代碼測試了一下,你上邊的代碼沒有問題,能正常顯示
應(yīng)該不是這些代碼的問題,你看看你的 a 和 colname 是否賦值正確
默認(rèn)的排序,是點(diǎn)擊表頭,正序,再點(diǎn)擊一下, 倒序
你需要怎么排序啊?
新聞標(biāo)題:java表格不顯示代碼,java表格不顯示代碼數(shù)據(jù)
標(biāo)題來源:http://chinadenli.net/article30/dsgdsso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、外貿(mào)網(wǎng)站建設(shè)、建站公司、關(guān)鍵詞優(yōu)化、電子商務(wù)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)