我有2个问题,我需要问一下,第一个如何获取我的JTable的水平滚动,目前它缩小了所有不可读的列。我有20列要在表格中显示。
2,如何将我的桌子高度宽度调整到我的屏幕尺寸。
我目前的代码是
Container cp = getContentPane();
ConnectionDB con = new ConnectionDB();
tableModel = con.getRecord(DEFAULT_QUERY);
table = new JTable(tableModel);
table.setPreferredScrollableViewportSize(new Dimension(900, 500));
table.setFont(new Font("Tahoma", Font.PLAIN, 12));
scrollPane = new JScrollPane(table);
centerPanel.add(scrollPane, BorderLayout.CENTER);
centerPanel.setBorder(BorderFactory.createTitledBorder("Books:"));
cp.add("Center", centerPanel);
请帮助我,先谢谢。
答案 0 :(得分:10)
为防止所有列都调整为ScrollPane
大小,您可以停用自动调整大小:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
将ScrollPane
添加到BorderLayout
的中心应将最大尺寸设置为屏幕尺寸,因为通常JFrame不会变大。
要将ScrollPane
ViewPort的大小设置为屏幕大小,您可以使用awt Toolkit
。
table.setPreferredScrollableViewportSize(Toolkit.getDefaultToolkit().getScreenSize());
答案 1 :(得分:1)
在JTable
内添加JScrollPane
并设置滚动条。
new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JTable
的代码示例以适应屏幕尺寸
public class TestJTableFitsScreenWidth {
public static void main(String... args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame();
DefaultTableModel dtm = new DefaultTableModel(
new String[][]{
new String[] {"A", "B", "D"},
new String[] {"D", "E", "F"}
},
new String[] {"col1", "col2", "col3"});
JTable table = new JTable(dtm);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
f.getContentPane().setLayout(new BorderLayout());
f.getContentPane().add(table, BorderLayout.CENTER);
f.setVisible(true);
f.pack();
}
});
}
}
答案 2 :(得分:0)
这可能会对你有所帮助。
Dimension d = new Dimension(900, 800);
tbl_transaction.setAutoResizeMode(tbl_transaction.AUTO_RESIZE_OFF);
tbl_transaction.setPreferredSize(d);
tbl_transaction.setPreferredScrollableViewportSize(d);