2012-01-19 3 views
-1

jlist에 리스너를 추가하려고합니다. 항목은 jlist에 동적으로 추가됩니다. 그래서 나는 리스너를 기울이지 않는다. 및 이벤트가 실행되지 않습니다. 수 any1 날 도와 줘 ??? plzz에 문의하십시오.

JList - ListSelectionListener

DefaultListModel f=new DefaultListModel(); 
DefaultListModel sf=new DefaultListModel(); 

public Jlistdemo() { 
    initComponents(); 

    System.out.println("hi"); 
    for(int i=0;i<10;i++) 
    { 
     f.addElement("hello"+i); 
     //System.out.println("helloo"+i); 
    } 
    fields=new JList(f); 
    jScrollPane1.setViewportView(fields); 

} 


@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code"> 
private void initComponents() { 

    jScrollPane1 = new javax.swing.JScrollPane(); 
    fields = new javax.swing.JList(); 
    jScrollPane2 = new javax.swing.JScrollPane(); 
    sel_fields = new javax.swing.JList(); 
    jButton1 = new javax.swing.JButton(); 
    jButton2 = new javax.swing.JButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    fields.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 
    jScrollPane1.setViewportView(fields); 

    sel_fields.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 
    sel_fields.addListSelectionListener(new javax.swing.event.ListSelectionListener() { 
     public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 
      sel_fieldsValueChanged(evt); 
     } 
    }); 
    jScrollPane2.setViewportView(sel_fields); 

    jButton1.setText(">"); 
    jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton1ActionPerformed(evt); 
     } 
    }); 

    jButton2.setText("<"); 
    jButton2.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton2ActionPerformed(evt); 
     } 
    }); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(40, 40, 40) 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING)) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
      .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addGap(91, 91, 91)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(31, 31, 31) 
         .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) 
        .addGroup(layout.createSequentialGroup() 
         .addGap(60, 60, 60) 
         .addComponent(jButton1) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jButton2)))) 
      .addContainerGap(68, Short.MAX_VALUE)) 
    ); 

    pack(); 
} 

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    if(fields.getSelectedValue()!=null) 
    { 
     int i=fields.getSelectedIndex(); 

     sf.addElement(fields.getSelectedValue()); 
     f.removeElement(fields.getSelectedValue()); 
     sel_fields=new JList(sf); 
     sel_fields.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
     jScrollPane2.setViewportView(sel_fields); 
     fields.setSelectedIndex(i); 
     jScrollPane2.revalidate(); 
     jScrollPane2.repaint(); 
    } 
} 

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
    if(sel_fields.getSelectedValue()!=null) 
    { 
     int i=sel_fields.getSelectedIndex(); 
     f.addElement(sel_fields.getSelectedValue()); 
     sf.removeElementAt(sel_fields.getSelectedIndex()); 
     sel_fields.setSelectedIndex(i); 
    } 

} 

private void sel_fieldsValueChanged(javax.swing.event.ListSelectionEvent evt) { 
     System.out.println("fired"); 
} 
public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      new Jlistdemo().setVisible(true); 
     } 
    }); 
} 

private javax.swing.JList fields; 
private javax.swing.JButton jButton1; 
private javax.swing.JButton jButton2; 
private javax.swing.JScrollPane jScrollPane1; 
private javax.swing.JScrollPane jScrollPane2; 
private javax.swing.JList sel_fields; 
+0

에 오신 것을 환영합니다. :-) 질문과 답변은 공개 될 예정입니다. 아무도 당신에게 어떤 코드도 개인적으로 보내지 않을 것을 기대하지 마십시오 (컨설턴트를 고용하는 것을 고려한다면 :-) BTW : any1은 영어 단어 afaik가 아니며 끈적 끈적한 물음표는 고함 소리로 간주 될 수 있습니다 ... – kleopatra

답변

2

오류가 생성자에 다음 라인 : 내 이메일 ID [email protected] 여기
내 코드입니다에

fields = new JList(f) 

, 당신은 목록을 대체 이는 initComponents에서 생성됩니다.

+0

ur 의례 .... 나는 오류를 발견 .... .... !! thnk u ... !! – unknown

0

당신은 데이터를 추가하지 않고 목록 생성을 분리합니다.

및 선택한 필드를 추적 할 필요가없는 목록이 자동으로 표시됩니다.

더 나은 이름은 코드를 명확하게 만드는 데 도움이됩니다.

+0

미안하지만, 난 ... plz 설명해 줄게 .... – unknown

+0

자습서를보세요. 당신의 코딩과 함께 작은 시작; 작동 할 때까지; 점진적으로 유지하면 더 복잡해집니다. http://docs.oracle.com/javase/tutorial/uiswing/components/list.html –

+0

이미 확인했습니다. 하지만 솔루션을 찾을 수 없습니다. 이 프로그램에서 오류나 실수를 찾을 수 있습니까? 이것이 내 프로젝트의 모듈이라고 생각해. (보고서 생성기) – unknown