[英]Horizontal Scrolling + JTable + Java
我檢查了stackoverflow上有關在JTable上進行水平滾動的問題。 設置AUTO_RESIZE_OFF會讓我獲得水平滾動條,但同時表格不會使用滾動窗格的整個寬度。
我做了一些閱讀,事實證明這是自1998年以來的一個運行錯誤 (Oracle會修復這個嗎?)
我看到了一些關於騎行方法的建議,但沒有一個對我有用。 那么有人有答案嗎? 非常感謝。 基本上我需要表自動調整大小,但在任何列名稱被壓縮之前啟用水平滾動條。
謝謝。
在對其他答案進行咆哮之后 - JXTable(在SwingX項目中 )有一個額外的列布局屬性
需要進行一些內部調整,所以(有偏見的)建議使用JXTable。 或者看看它的代碼和c&p - 所有允許的,所有開源:-)
檢查此鏈接並嘗試解決此問題
http://www.daniweb.com/software-development/java/threads/29263
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class ScrollableJTable {
public static void main(String[] args) {
new ScrollableJTable();
}
public ScrollableJTable() {
JFrame frame = new JFrame("Creating a Scrollable JTable!");
JPanel panel = new JPanel();
String data[][] = {
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"},
{"001", "vinod", "Bihar", "India", "Biology", "65", "First"},
{"002", "Raju", "ABC", "Kanada", "Geography", "58", "second"},
{"003", "Aman", "Delhi", "India", "computer", "98", "Dictontion"},
{"004", "Ranjan", "Bangloor", "India", "chemestry", "90", "Dictontion"}
};
String col[] = {"Roll", "Name", "State", "country", "Math", "Marks", "Grade"};
JTable table = new JTable(data, col);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JTableHeader header = table.getTableHeader();
header.setBackground(Color.yellow);
JScrollPane pane = new JScrollPane(table);
panel.add(pane);
frame.add(panel);
frame.pack();
// frame.setSize(500, 200);
// frame.setUndecorated(true);
// frame.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
那么這里有一些鏈接,我希望它們不會破壞。 swinglabs下載頁面在這里:
http://swinglabs.org/downloads.jsp
但在我訪問該網站時,這些下載被破壞了(這可能現在已經修復),經過一番調查后,我發現他們的服務器上有無聊的訪問權限:
http://java.net/downloads/swingx/releases/1.6.2/
這就是我遇到的所有麻煩,只需找到庫。 這只是將.jar文件解壓縮並添加到我的項目然后導入JXTable(org.jdesktop.swingx.JXTable)的問題。
JXTable擴展了常規JTable(參見文檔: http : //download.java.net/javadesktop/swinglabs/releases/0.8/docs/api/org/jdesktop/swingx/JXTable.html )所以所有常規JTable方法等仍然可用。
導入庫后,只需告訴表格水平滾動即可
JXTable table = new JXTable(yourTableModel)
table.setHorizontalScrollEnabled(true)
Swing labs提供了一個可愛的教程,解釋了他們在JTable上所做的所有增強。 請參閱此處的教程:
http://swinglabs.org/docs/components/JXTable/tutorial.jsp?step=0
希望這有幫助,真的幫助了我。 感謝Kleopatra指出了正確的道路。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.