0

我在 JScrollPane 中有一个 customText 组件。当文本为空且没有滚动条时,我可以看到所有文本。但是当滚动条变得可见时,一些文本被“隐藏”在这些滚动条后面。也许我可以收听 JViewPort 大小的变化并为我的文本组件设置首选大小?

JComponent component = getResTextArea();
component.setPreferredSize(RES_TEXT_AREA_PREFFERED_SIZE);
JScrollPane scrollPane = new JScrollPane(component);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scrollPane.getVerticalScrollBar().setUnitIncrement(UNIT_INCREMENT);
panel.add(scrollPane);

我看到当文本超出面板的可见区域并显示滚动条时,视口的大小如何变化。

编辑。我的自定义组件是 JEditorPane 的子类。

4

1 回答 1

2

实现这一点的最佳方法是让您的自定义组件实现 javax.swing.Scrollable,getScrollableTracksViewportWidth() 返回 true。这会将 JComponent 的宽度锁定到视口的宽度。

于 2012-04-04T16:45:24.323 回答