dod*_*onl 14 java swing jscrollpane jlist autoscroll
我有下一个代码:
listModel = new DefaultListModel();
listModel.addElement(dateFormat.format(new Date()) + ": Msg1");
messageList = new JList(listModel);
messageList.setLayoutOrientation(JList.VERTICAL);
messageScrollList = new JScrollPane(messageList);
messageScrollList.setPreferredSize(new Dimension(500, 200));
messageScrollList.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}
});
Run Code Online (Sandbox Code Playgroud)
它会自动向下滚动.但是,如果我尝试向上滚动以重新阅读消息,则会强制向下滚动.我怎样才能解决这个问题?
tra*_*god 10
当添加新的消息时,调用scrollRectToVisible()
所述上JList
使用Rectangle
具有相同尺寸作为邮件窗格的最佳尺寸.给定垂直取向,它可方便地使的优选尺寸JScrollPane
的JViewport
邮件面板的高度的整数倍.另请参阅:如何使用滚动窗格.
附录:对文本区域滚动的这一引人注目的讨论也可能有所帮助.