2017-03-29 3 views
0

Ich versuche, eine JList durch eine Schaltfläche zu füllen, und füllen Sie dann das JTextField mit DoubleClick auf die zuvor gefüllte Jlist.Füllen einer JList mit einem JButton und Füllen des JTextField mit DoubleClick auf der Jlist

Code:

private void extractUsedVariablesActionPerformed(java.awt.event.ActionEvent evt) {              
    // TODO add your handling code here: 


    if(arguments.size() > 0) 
     JOptionPane.showMessageDialog(null, "Please complete the predicates before accessing this"); 

    DefaultListModel lista1 = new DefaultListModel(); 
    for (int i = 0;i<variableList.size();i++) 
     { 
     if (!lista1.contains(variableList.get(i))) 
     { 
     lista1.addElement(variableList.get(i)); 
     } 
     } 
    argVariables_List.setModel(lista1); 
    revalidate(); 
    repaint(); 

    if (lista1.size()>0){ 
     System.out.println("got here1"); 
     MouseListener mouseListener2 = new MouseAdapter() 
       {   
       public void mouseClicked1(MouseEvent mouseEvent2) 
       { 
        JList varList = (JList) mouseEvent2.getSource(); 
         if (mouseEvent2.getClickCount() == 2) 
         { 
         System.out.println("may be"); 
         int index varList.locationToIndex(mouseEvent2.getPoint()); 
         if (index >= 0) 
         { 
          Object o2 = varList.getModel().getElementAt(index); 
          System.out.println(o2.toString());   
         }       
         } 
        }      
        }; 
        argVariables_List.addMouseListener(mouseListener2); 
    } 

} 

Es funktioniert gut, bis den JList bevölkert. Aber wenn ich den Doppelklick-Vorgang versuche und den Text mit dem angeklickten Index drucke, erhalte ich keine Ausgabe und auch keine Fehler. Bitte schlage mir vor, wenn mir etwas fehlt.

+0

Gott bitte, einrücken Sie Ihren Code vor dem Teilen mit anderen ... – Oneiros

Antwort

2
public void mouseClicked1(MouseEvent mouseEvent2) 

Es gibt keine solche Methode in der MouseListener-Schnittstelle. (beachte die "1").

Stellen Sie sicher, dass Sie @Override in die Zeile oberhalb der Methode einfügen, und Sie erhalten einen Compilerfehler, wenn Sie einen Tippfehler machen.

@Override 
public void mouseClicked1(MouseEvent mouseEvent2)