java swing 横向表格
时间: 2023-09-08 12:13:05 浏览: 136
Java Swing中的JTable可以实现横向表格的效果。具体实现方法如下:
1. 创建一个JTable对象,并设置其Model为一个自定义的TableModel。
2. 重写TableModel的getColumnCount()和getRowCount()方法,使其返回横向表格的列数和行数。
3. 重写TableModel的getValueAt(int row, int column)方法,使其返回横向表格中指定行和列的值。
4. 将JTable放置到一个容器中,并设置其布局管理器为BoxLayout,并设置布局方向为水平方向。
5. 将JTable的高度设置为容器的高度,并将JTable的宽度设置为根据列数计算得出的宽度。
6. 在容器中添加一个水平滚动条,使得用户可以在横向表格中滚动。
下面是一个简单的示例代码:
```
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.*;
public class HorizontalTableExample extends JFrame {
private static final int ROWS = 5;
private static final int COLUMNS = 10;
public HorizontalTableExample() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Horizontal Table Example");
// 创建一个自定义的TableModel
TableModel model = new TableModel();
// 创建一个JTable,并将其Model设置为自定义的TableModel
JTable table = new JTable(model);
// 设置JTable的高度为容器的高度
table.setPreferredScrollableViewportSize(new Dimension(0, 100));
// 设置JTable的宽度为根据列数计算得出的宽度
int tableWidth = COLUMNS * 50;
table.setPreferredScrollableViewportSize(new Dimension(tableWidth, 100));
// 将JTable放置到一个容器中,并设置布局管理器为BoxLayout,布局方向为水平方向
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS));
JScrollPane scrollPane = new JScrollPane(table);
contentPane.add(scrollPane);
// 添加一个水平滚动条
JScrollBar horizontalScrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
horizontalScrollBar.setModel(scrollPane.getHorizontalScrollBar().getModel());
contentPane.add(horizontalScrollBar);
pack();
setLocationRelativeTo(null);
}
private static class TableModel extends AbstractTableModel {
@Override
public int getRowCount() {
return ROWS;
}
@Override
public int getColumnCount() {
return COLUMNS;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return String.format("(%d,%d)", rowIndex, columnIndex);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new HorizontalTableExample().setVisible(true);
});
}
}
```
在这个示例代码中,我们创建了一个5行10列的横向表格,并将其放置到一个容器中,用户可以通过水平滚动条在横向表格中滚动。
阅读全文