背景
希望在JScrollPane
不遮挡视口内容的情况下将滚动锁定按钮添加到角落。下图显示了一个JScrollPane
封装在SwingNode
JavaFX 应用程序中:
右下角显示一个带有锁定图标的按钮,可以切换,这是预期的结果:
请注意视口底部的内容(锁定按钮旁边的部分)是如何可见的。(单击按钮将模拟按下键盘上的滚动锁定按钮。在顶部有一个滚动锁定按钮非常好,如果这更容易的话。)
问题
JScrollPane API 显示以下图像:
启用角组件似乎还需要添加列标题。标题的添加遮盖了部分视口,与滚动锁定按钮的高度成正比。这是一个显示可见列标题的屏幕截图,它隐藏了文档的一部分:
想法
我尝试使标题视图面板透明,但无济于事。
代码
中的相关代码SwingNode
:
// FlyingSaucer subclass
mView = new HtmlPanel();
mScrollPane = new JScrollPane( mView );
setContent( mScrollPane );
final var lock = new JButton( "X" );
mScrollPane.setCorner( UPPER_TRAILING_CORNER, lock );
mScrollPane.setVerticalScrollBarPolicy( VERTICAL_SCROLLBAR_ALWAYS );
final var header = new JPanel();
header.setPreferredSize(
new Dimension( 12, lock.getPreferredSize().height ) );
header.setOpaque( false );
header.setBackground( new Color( 0, 0, 0, 0 ) );
mScrollPane.setColumnHeaderView( header );
有关另一个示例,请参见camickr 的答案。
问题
您将如何在JScrollPane
的底角(或顶角)添加一个按钮,以便不会遮挡视口内容?