Tôi đã có mã tiếp theo:JScrollPane và JList tự động cuộn
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());
}
});
Nó tự động cuộn xuống. Nhưng, nếu tôi cố gắng cuộn lùi lại để đọc lại một tin nhắn, nó buộc phải cuộn xuống. Làm cách nào để khắc phục sự cố này?
Adjusttype giống nhau trong cả hai trường hợp. Tôi đã thử điều này để cuộn xuống nếu một tin nhắn được thêm vào. Nhưng nếu tôi làm điều đó, tin nhắn được thêm lần cuối sẽ không hiển thị. Nó cuộn không đủ xuống. Làm thế nào tôi có thể giải quyết điều đó? – dododedodonl
Hmm ... Vâng, một điều bạn có thể làm là có biến boolean ở đâu đó được đặt khi bạn thêm thứ gì đó vào danh sách. Sau đó, trong trình xử lý của bạn, bạn kiểm tra xem biến có được đặt hay không. Nếu vậy, bạn thực hiện điều chỉnh (và bỏ đặt biến) nếu không, bạn bỏ qua nó. Bằng cách đó, sẽ chỉ có một cuộn xuống cho mỗi mục được thêm vào danh sách. –