나는 아주 어리 석다. 그러나이 간단한 코드가 타원의 색을 변경하지 않는 이유는 무엇입니까?그래픽 객체의 MouseListener
기본적으로 그래픽 객체 인 타원형에 마우스 수신기를 추가하려고합니다. 마우스 커서가 타원형 인 경우 타원은 색상을 변경합니다. 그러나이 코드는 전혀 변경되지 않습니다 ...이 코드는 테스트 용입니다.
public class Help extends JFrame{
public static void main(String [] agrs){
Help h = new Help();
h.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
h.add(new Help_Option());
h.setSize(2000, 1000);
h.setVisible(true);
}
}
class Help_Option extends JComponent implements MouseListener{
Ellipse2D ellipse = new Ellipse2D.Double(0, 0, 1000, 500);
Color c = Color.BLACK;
public Help_Option(){
this.addMouseListener(this);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.BLUE);
g2d.draw(ellipse);
g2d.setColor(c);
g2d.fill(ellipse);
}
public void setColor(Color c){
this.c = c;
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {
if (ellipse.contains(e.getX(), e.getY())) {
setColor(Color.GREEN);
repaint();
}
}
@Override
public void mouseExited(MouseEvent e) {
}
}
어떤 오류가 발생합니까? –
오류가 없습니다! 하지만 색깔이 바뀌지는 않습니다 ... –
"전혀 작동하지 않습니다"라는 말은 무엇입니까? 컴파일러가 오류 (어떤?)를 주었습니까? 프로그램이 예외를 부여합니까 (?), 아니면 단순히 아무것도하지 않는 것입니까? –