【发布时间】:2018-09-16 08:19:43
【问题描述】:
我正在尝试将 JTable 插入到 JScrollPane 中,我看到表格的边框和滚动窗格之间有一个小间隙。在左侧,表格看起来与极左对齐。有人可以帮忙吗我解决这个问题。?
删除 setAutoResizeMode(JTable.AUTO_RESIZE_OFF) 可以解决此问题。但我需要将其关闭。
this.dataTable = new SortableTable(this);
this.dataTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.dataTable.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
scrollPane = new JScrollPane(dataTable,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setPreferredSize(new Dimension(900,250));
scrollPane.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
【问题讨论】:
-
也许您喜欢的 900 尺寸小于容器的宽度*?
-
好的。将preferredsize 设置为new Dimension(895, 250) 时..我没有看到任何差距。但我想知道是否有任何方法可以使表格适合滚动窗格任何尺寸。如果我将表格的首选大小设置为滚动窗格首选大小,我会看到一个不需要的滚动条。
-
删除 setAutoResizeMode 行,Java 将调整它的大小
-
问题是对话框不应该被允许调整大小。如果我删除 JTable 上的 AutoResizeMode 并且如果用户想要扩展任何列,因为列可能有太多数据,他们不会希望其他列改变它们的大小(收缩),而不是应该给出一个水平滚动条。所以我把它关掉了。
-
1)
scrollPane.setPreferredSize(new Dimension(900,250));这可能是问题的核心。请参阅Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?(是。)2)如需更好的帮助,请尽快发布minimal reproducible example 或Short, Self Contained, Correct Example。