30/09/2018, 18:31

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…

BigCat viết 20:34 ngày 30/09/2018

use method:
public void ensureIndexIsVisible(int index)

Phan Thành Nam viết 20:43 ngày 30/09/2018

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…

BigCat viết 20:42 ngày 30/09/2018
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

Phan Thành Nam viết 20:44 ngày 30/09/2018

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 ạ…

BigCat viết 20:44 ngày 30/09/2018

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 
Phan Thành Nam viết 20:46 ngày 30/09/2018

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…

BigCat viết 20:39 ngày 30/09/2018

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 đã

Phan Thành Nam viết 20:43 ngày 30/09/2018

getElementAt(i);

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

Bài liên quan
0