问题在于,滚动窗格将以其首选大小显示组件,然后根据需要添加滚动条。
在您的情况下,您希望宽度受滚动窗格的视口限制。
因此,您需要
Scrollable在添加到视口的组件上实现接口。该
Scrollable界面将允许您强制组件宽度匹配视口的宽度,从而限制每个JTextPane的宽度,从而导致文本换行。
实现此功能的一种简单方法是使用Scrollable
Panel。此类实现Scrollable接口,并允许您使用参数覆盖Scrollable方法。
因此,基本代码为:
ScrollablePanel panel = new ScrollablePanel( new BorderLayout());panel.setScrollableWidth( ScrollablePanel.ScrollableSizeHint.FIT );
第一个JTextPane的父面板固定宽度为70%,第二个JTextPane的固定宽度为30%
一种方法是使用JSplitPane,以便在两个文本窗格之间有一个分隔符,并且文本不会合并为一个。
JSplitPane splitPane = new JSplitPane();splitPane.setLeftComponent(new JTextPane());splitPane.setRightComponent(new JTextPane());splitPane.setResizeWeight(0.7);splitPane.setDividerLocation(.7);
然后,您只需将所有内容添加到框架中:
panel.add(splitPane);frame.add(new JScrollPane(panel), BorderLayout.CENTER);
现在,分隔符的位置将保持在70%,并且在调整框架大小时,文本窗格将增加/缩小。



