设置滚动条厚度

2022-09-03 12:56:31

有没有办法在?默认值有点笨拙。JScrollPane


答案 1

一个快速但又肮脏的解决方案是将宽度/高度显式设置为例如10像素,通过

jScrollPane.getVerticalScrollBar().setPreferredSize(new Dimension(10, 0));
jScrollPane.getHorizontalScrollBar().setPreferredSize(new Dimension(0, 10));

另一种方法是提供适当的.ScrollBarUI


答案 2

以下内容适用于默认的 LNF(金属)。

如果您只想设置一个特定大小,那么您可以在创建JScrollPane之前放置此代码(将40替换为您喜欢的任何大小)...

UIManager.put("ScrollBar.width", 40);

如果你想根据默认大小缩放滚动条,那么类似这样的东西(在你创建JScrollPane之前)...

UIManager.put("ScrollBar.width", (int) ((int) UIManager.get("ScrollBar.width") * 2.5));

如果你想在创建JScrollPane更改它,事情会稍微复杂一些,但还不错......

int scrollbarSize = <some dynamic value>;
UIManager.put("ScrollBar.width", scrollbarSize);
scrollPane.setVerticalScrollBar(scrollPane.createVerticalScrollBar());
scrollPane.setHorizontalScrollBar(scrollPane.createHorizontalScrollBar());

我希望这可以帮助某人。