gpt4 book ai didi

Java:JPanel 矩形问题?

转载 作者:行者123 更新时间:2023-12-01 07:04:11 25 4
gpt4 key购买 nike

我正在制作一个程序,当用户按下鼠标然后再次按下时,该程序会改变矩形的颜色按下默认颜色发生我用 jpanel 绘制它绘画组件方法的帮助。我使用鼠标适配器编写了鼠标按下的方法。但是如何制作一个当用户鼠标按下矩形时,将矩形颜色更改为红色的功能,当再次按下此矩形时,也会出现默认颜色。这是图片
enter image description here
代码:

    public class A extends JPanel{
public void paintComponent(Graphics g){
super.paintComponents(g);

g.setColor(Color.BLACK);
g.fillRect(6, 10, 66, 70);

addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){


}
});
}
}

主要:

public class Main {

public static void main(String[] args) {

JFrame obj = new JFrame();
A object = new A();
obj.add(object);

obj.setSize(450, 400);
obj.setResizable(false);
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.setLocationRelativeTo(null);

obj.setVisible(true);
}
}

最佳答案

添加 Gosu 的答案:

如果你想让颜色只在点击矩形时切换,只需要在MouseListener内部添加if语句即可。

    frame.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent e) {

// Check if the point where the mouse was clicked is contained
// within the drawing Rectangle.
if (new Rectangle(6, 10, 66, 70).contains(e.getPoint())) {
object.switchColor();
object.revalidate();
object.repaint();
}
}
});

但是,请记住,在实际的应用程序中,您永远不应该对类似于本示例中的矩形的任何内容进行硬编码。

关于Java:JPanel 矩形问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com