Hỏi về thanh cuộn của JList trong java

Các anh/ chị cho em hỏi: muốn thanh cuộn tự động kéo xuống khi nhập dữ liệu vào thì làm sao ạ ? chứ em thấy khi nhập dữ liệu thì nó không tự động cuộn xuống theo mà mình phải kéo xuống mới thấy được… em thấy không ổn…

use method:
public void ensureIndexIsVisible(int index)

em vẫn không hiểu cách dùng của nó thế nào ạ ?
em code thế này: List.ensureIndexlsVisible(List.setSelectedIndex());
nó vẫn như cũ… em không biết phải dùng như thế nào cho đúng…

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
  
class Testing extends JFrame  implements ActionListener
{
  DefaultListModel listModel = new DefaultListModel();
  JList list = new JList(listModel);
  JScrollPane sp = new JScrollPane(list);
  JButton btn = new JButton("Add");
  int ctr = 1;
  public Testing()
  {
    setTitle("Testing");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocation(400,300);
    Container frame = getContentPane();
    JPanel jp = new JPanel();
    sp.setPreferredSize(new Dimension(100,200));
    jp.add(sp);
    btn.addActionListener(this);
    frame.add(jp,BorderLayout.NORTH);
    frame.add(btn,BorderLayout.SOUTH);
    pack();
  }
  public void actionPerformed(ActionEvent ae)
  {
    listModel.addElement(""+ctr++);
    list.ensureIndexIsVisible(listModel.size()-1);
  }
  public static void main( String[] args){new Testing

em cảm ơn anh nhiều ạ, em làm dc rồi… à mà anh ơi… nhân tiện cho em hỏi cách lấy phần tử của JList với anh ơi… ví dụ như lấy phần tử thứ i trong JList ấy ạ…

Em muốn lấy kiểu gì?
Có 2 cách thôi.
GetselectedIndex

getselectedIndex() // return -1 if no element selected

getElementAt(i);

Object o = theList.getModel().getElementAt(index); // return object at index 

em có code thế này:
‘’’

 if(evt.getKeyCode() == evt.VK_ENTER){
            model.addElement(tfNhapSo.getText());
            A[i] = Integer.parseInt(tfNhapSo.getText());
            i++;
        }
        List.setModel(model);
        List.ensureIndexIsVisible(model.size() - 1);
    }    

‘’’
ví dụ như em muốn lấy phần tử thứ 5 trong List thì làm sao anh ?? lấy ra để kiểm tra xem phần tử đó có phải số nguyên tố không, nếu là số nguyên tố thì bôi đen số đó trong List… em tìm mãi không ra cách lấy…

Em đọc cái comment trên rồi tự suy nghĩ 2 cách lấy giá trị tại vị trí thứ 5 trong 15 phút đi. Không hiểu hỏi tiếp
Anh ăn cơm đã :stuck_out_tongue:

có phải dùng thế này không anh:

Object o = List.getModel().getElementAt(i - 1);
System.out.println("Gia tri la: " +o.toString());

em không biết đúng không :sweat:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?