我有下面的代碼:JScrollPane的和JList的自動滾動
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());
}
});
它能夠自動向下滾動。但是,如果我嘗試回滾重新讀取消息,它會強制向下滾動。 我該如何解決這個問題?
調整類型在兩種情況下都是相同的。如果添加了一條消息,我試過這個向下滾動。但如果我這樣做,最後添加的消息不可見。它滾動不夠。我該如何解決這個問題? – dododedodonl 2010-01-25 13:55:59
嗯......嗯,你可以做的一件事就是在你添加一些東西到列表中時,在某處設置一個布爾變量。然後,在您的處理程序中,檢查是否設置了該變量。如果是這樣,你做調整(並取消設置變量)否則,你忽略它。這樣,每個項目只會向列表中添加一個向下滾動。 – 2010-01-25 14:23:47