2015-02-02 3 views
3

나는 스윙이 처음이다. 패널에 Jlist 구성 요소를 드래그 앤 드롭했습니다.Jlist를 동적으로 업데이트 중

jList1 = new javax.swing.JList(); 
jList1.setModel(new javax.swing.AbstractListModel() { 
    String[] strings = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"}; 

    public int getSize() { 
     return strings.length; 
    } 

    public Object getElementAt(int i) { 
     return strings[i]; 
    } 
}); 
jScrollPane1.setViewportView(jList1); 

코드를 실행하면 기본적으로 포함 된 요소가 제공됩니다. 코드를 통해 요소를 동적으로 삽입하려면 어떻게해야합니까? 사용해 보았습니다

DefaultListModel model = new DefaultListModel(); 
jList1 = new JList(model); 
for (int i = 0; i < 15; i++) { 
    model.addElement("Element " + i); 
} 
jList1.setModel(model); 

그러나 목록이 업데이트되지 않습니다. 어떻게 동적으로 업데이트 할 수 있습니까? 새 만든 후 jList1 = new JList(model); 제거하기로

답변

5

시작 DefaultListModel

DefaultListModel model = new DefaultListModel(); 
//jList1 = new JList(model); 
for (int i = 0; i < 15; i++) { 
    model.addElement("Element " + i); 
} 
jList1.setModel(model); 

당신이 없음 화면

+0

jList1 = new JList (model); 그것은 나를 null 포인터 예외 오류를주고있다. – nikalldway

+2

문제를 나타내는 [실행 가능한 예제] (https://stackoverflow.com/help/mcve)를 제공하십시오. 이것은 덜 혼동과 더 나은 응답을 초래할 것입니다 - 그리고'initComponents'가 먼저 호출되는지 확인하십시오 – MadProgrammer

+0

저는 initComponents를 마지막에 호출 해 주셔서 고맙습니다. 그리고 저에게 null 포인터 예외를주었습니다. 이제 코드가 작동 중입니다 ... – nikalldway

1

에있는 인스턴스와는 아무 상관이없는 JList의 새로운 인스턴스를 만들 요소 추가 동적으로 주어진 코드를 사용할 수 있습니다.

DefaultListModel model = (DefaultListModel)jList1.getModel(); 
    model.addElement("Element " + count++); 
+0

모델에 NetBeans에서 제공하는 기본값이 여전히 포함되어 있습니다. OP에서 수행하려고하는 작업에 따라 모드를 먼저 지우려고합니다. 나는 또한주의를 기울이지 않으면 주조가 항상 좋은 생각은 아니라고 주장한다.) – MadProgrammer

관련 문제