Java 将jscrollbar连接到另一个组件

Java 将jscrollbar连接到另一个组件,java,swing,jscrollpane,jscrollbar,Java,Swing,Jscrollpane,Jscrollbar,在我的应用程序中,有两个swing组件彼此重叠,看起来像下图。问题是橙色组件需要一个垂直滚动条,但我希望组件的右边缘保持精确对齐(宽度可以随用户使应用程序变宽或变窄而变化)。如果我使用网格布局,滚动条会占用空间,然后滚动条会与红色组件的右边缘对齐 我想我可能需要使用一个滚动条组件并单独添加它,然后用它来控制橙色组件。有没有办法将滚动条连接到另一个类似的组件上?我认为如果不使用滚动窗格,这将很困难。 我也愿意接受任何关于如何实现这一点的建议。实施您建议的方法应该不会太难。将橙色组件包装在JScr

在我的应用程序中,有两个swing组件彼此重叠,看起来像下图。问题是橙色组件需要一个垂直滚动条,但我希望组件的右边缘保持精确对齐(宽度可以随用户使应用程序变宽或变窄而变化)。如果我使用网格布局,滚动条会占用空间,然后滚动条会与红色组件的右边缘对齐

我想我可能需要使用一个滚动条组件并单独添加它,然后用它来控制橙色组件。有没有办法将滚动条连接到另一个类似的组件上?我认为如果不使用滚动窗格,这将很困难。
我也愿意接受任何关于如何实现这一点的建议。

实施您建议的方法应该不会太难。将橙色组件包装在
JScrollPane
中,但将滚动窗格配置为隐藏两个滚动条。然后,将滚动窗格中垂直滚动条的滚动模式设置为独立滚动条中的滚动模式。即使滚动窗格滚动条已隐藏,但如果链接了模型,滚动条仍将滚动。有关一些代码,请参阅-这是一个不同的应用程序,但原理类似

或者,您可以使用带有可见垂直滚动条的
JScrollPane
,并在红色组件旁边添加间距组件以保持其对齐。我想您可以使用带有两列的
GridBagLayout
。第一行包含红色组件和分隔符,第二行包含包含橙色组件的滚动窗格,该组件横跨两列。然后,您只需从
JScrollPane
中获取滚动条组件的宽度,并将间隔条的首选宽度设置为相同的值。这种策略的一个缺点是,如果滚动条宽度发生变化(例如,由于用户界面的变化),则很难保持间隔大小的更新