【发布时间】:2014-04-15 11:58:56
【问题描述】:
我觉得自己很愚蠢。但是这段简单的代码为什么没有改变椭圆的颜色呢?
基本上我想给椭圆添加一个鼠标监听器——一个图形对象。当鼠标光标处于椭圆形时,椭圆形会改变其颜色。但是这段代码根本没有改变……这段代码只是为了测试。
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) {
}
}
【问题讨论】:
-
您遇到了哪个错误?
-
没有错误!但它不会改变颜色...
-
你是什么意思,“根本不运行”?编译器是否给出错误(哪个?),程序是否给出异常(哪个?),或者它根本没有做任何事情?
-
哦,对不起!我要换个帖子了!
标签: java swing graphics java-2d mouselistener