2013-05-14 3 views
0

마우스로 목록에서 항목을 선택하고 싶습니다. 나는이 코드를 발견했지만 작동하지 않았다.netbeans에서 jlist를 두 번 클릭하십시오.

MouseListener mouseListener = new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
     if (e.getClickCount() == 2) { 
      int index = list.locationToIndex(e.getPoint()); 
      System.out.println("Double clicked on Item " + index); 
     } 
    } 
}; 
list.addMouseListener(mouseListener); 
+0

"* 작동하지 않았습니다."는 허용되는 문제 설명이 아닙니다. –

+0

list.addMouseListener (mouseListener); 이 오류가 발생하면 mouseListener를 볼 수 없습니다. – user2092457

+0

"* this provide error *"는 유효한 Java 컴파일러 오류도 유효한 Java Exception도 아닙니다. –

답변

0

이 코드를 사용하면 샘플 응용 프로그램이 제대로 작동합니다 !!!!!!

import java.awt.BorderLayout; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 

import javax.swing.JFrame; 
import javax.swing.JList; 
import javax.swing.JScrollPane; 

public class calc { 
    public static void main(String args[]) { 
    String labels[] = { "A", "B", "C", "D", "E", "F", "G", "H" }; 
    JFrame frame = new JFrame("Selecting JList"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JList jlist = new JList(labels); 
    JScrollPane scrollPane1 = new JScrollPane(jlist); 
    frame.add(scrollPane1, BorderLayout.CENTER); 

    MouseListener mouseListener = new MouseAdapter() { 
     public void mouseClicked(MouseEvent mouseEvent) { 
     JList theList = (JList) mouseEvent.getSource(); 
     if (mouseEvent.getClickCount() == 2) { 
      int index = theList.locationToIndex(mouseEvent.getPoint()); 
      if (index >= 0) { 
      Object o = theList.getModel().getElementAt(index); 
      System.out.println("Double-clicked on: " + o.toString()); 
      } 
     } 
     } 
    }; 
    jlist.addMouseListener(mouseListener); 

    frame.setSize(350, 200); 
    frame.setVisible(true); 
    } 
} 
+0

이 JList를 사용하십시오. list = (JList) evt.getSource(); 전에 조건이 –

+0

이라면 이미 목록이 있습니다. 그래서 처음 두 줄은 필요 없지만 다른 코드는 "불법적 인 시작"오류를 나타냅니다. – user2092457

+0

'이미 목록이 있으므로 처음 두 줄은 필요 없습니다. '- 리스너를 작성하는 더 좋은 방법은 getSource() 메소드를 사용하는 것이다. 리스너는 클래스 변수에 의존해서는 안됩니다. – camickr

관련 문제