안녕 모두,마우스 수신기를 발사 한 항목을 알려주는 방법
나는 별표 등급의 간단한 구성 요소를 쓰려고합니다. 나는 Java 언어에 대해 상당히 익숙하지 않으며, Java에서 수행 할 수있는 작업을 수행 할 수 있는지 확실하지 않습니다. JLabel 배열 안에 JLabel을 추가 할 수 있습니까? 배열의 각 JLabel에는 마우스 이벤트 리스너가 있습니다. 이제 마우스 이벤트가 Label [3]에서 발생하면 인덱스 값을 얻을 수 있도록 설정할 수 있습니까? 여기
내가 내 패널
public Rating(Integer max,int size) {
JLabel position = new JLabel[max];
this.setLayout(new FlowLayout());
for(int i=0; i != max;i++){
position[i]=new JLabel(icons.getIcon("star-empty", size));
position[i].setOpaque(true);
position[i].addMouseListener(this);
add(position[i]);
}
}
@Override
public void mouseEntered(MouseEvent e) {
JLabel a= (JLabel) e.getComponent();
//****Have some code in here to tell me where in the position array the event came from????***
int index = ?????
}
생각을 구축하는 방법입니다/아이디어/제안하십시오.
참고 단추를 사용하는 것으로 생각했지만 지저분 해 보였으므로 ImageIcon을 사용하여 방법을 찾고 싶습니다.
THanks.
인덱스가 중요한 이유는 클릭 한 번보다 작거나 같은 인덱스를 "true"로 설정해야하기 때문에 채워진 시작 부분을 페인트하고 다른 용도로 사용할 수 있습니다. – user597608
그래서 버튼 배열을 반복하면서 클릭 한 버튼까지 모든 버튼의 아이콘을 설정합니다. 어쨌든 당신은 이것을하는 방법에 대한 해답을 얻었습니다. – camickr