java - 为 Jtable 数据显示 JScrollpane 水平滚动条
问题描述
我有一张有 5 列的表格,我的最后一列是老师的工作日。
用户使用复选框选择教师工作的日期,当用户按下添加按钮时,该行将添加到 Jtable 中。
我的宽度有限,想使用 Jscrollpane 的水平滚动条来显示完整的数据
由于某种原因,当添加新行并超过我为 JTable 分配的大小时,会出现垂直滚动条,但水平滚动条不会出现这种情况。
我正在添加一张图片:
如您所见,我有一个垂直滚动条,但在第 15 行,日子被切断了,我希望它有一个水平滚动条,这样我就可以看到完整的数据
scrollPane = new JScrollPane();
scrollPane.setBorder(new EmptyBorder(0, 0, 0, 0));
scrollPane.setOpaque(false);
scrollPane.setBounds(10, 11, 508, 241);
teacherPanel.add(scrollPane);
String[] columnNames = { "ID", "Name", "Course", "Max Hours", "Days" };
teacherTableModel = new DefaultTableModel();
teacherTableModel.setColumnIdentifiers(columnNames);
teacherTable = new JTable(teacherTableModel) {
public boolean isCellEditable(int data, int columns) {
return false;
}
};
teacherTable.setFillsViewportHeight(true);
teacherTable.setOpaque(false);
teacherTable.setGridColor(new Color(0, 0, 0));
teacherTable.setFont(new Font("Tahoma", Font.BOLD, 12));
teacherTable.setBackground(new Color(204, 204, 204));
teacherTable.setFocusable(false);
teacherTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
teacherTable.getTableHeader().setResizingAllowed(false);
teacherTable.getTableHeader().setReorderingAllowed(false);
teacherTable.getTableHeader().setOpaque(false);
teacherTable.getTableHeader().setFont(new Font("Tahoma", Font.BOLD, 12));
teacherTable.getTableHeader().setBackground(new Color(71, 71, 71));
teacherTable.getTableHeader().setForeground(new Color(204, 204, 204));
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
for (int i = 0; i < 5; i++) {
teacherTable.getColumnModel().getColumn(i).setCellRenderer(centerRenderer);
}
teacherTable.getColumnModel().getColumn(0).setMaxWidth(25);
teacherTable.getColumnModel().getColumn(1).setMinWidth(150);
teacherTable.getColumnModel().getColumn(3).setMaxWidth(75);
teacherTable.getColumnModel().getColumn(4).setMinWidth(200);
scrollPane.setViewportView(teacherTable);
scrollPane.getViewport().setBackground(new Color(62, 62, 62));
teacherTableRow = new Object[5];
解决方案
推荐阅读
- c# - Elasticsearch.NET 7 和 Nest 7 - 每 1 小时丢失一次连接
- python - 根据两列“坐标”计算斜率
- ruby-on-rails - 如何找到一个没有很多的 Activerecord 条目
- excel - 如何使用 VBA 从 XLS 创建经过处理的 CSV 文件
- android - 当我使用底部导航视图时,如何从主页片段的操作栏中删除后退箭头
- python - 如何将spacy命名实体链接到嵌套字典中的文本?
- docker - Docker API V1.40 如何创建服务并将其连接到 swarm 覆盖网络以与其他堆栈点进行通信
- javascript - 如何在不使用插件的情况下制作 2D 可拖动导航效果?
- amazon-web-services - 如何使用 AWS Elastic Beanstalk 环境将自定义日志设置为 S3?
- oracle - ssis:执行sql任务截断表语句不适用于oracle连接