Basicly这是我的代码的一部分:的mousePressed秋千更多的东西
package Piano;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class DrawingPanel extends JPanel
{
int r = 0;
public void paintComponent(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(2.0f));
for (int i = 60; i < 1800; i += 150)
{
drawKeys(g, i, 450, 150, 550);
}
}
public void drawKeys(Graphics g, int x, int y, int width, int height)
{
g.setColor(Color.WHITE);
g.fillRect(x, y, width, height);
g.setColor(Color.BLACK);
g.drawRect(x, y, width, height);
r++;
this.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if (e.getX() > x && e.getX() < x + width && e.getY() > y && e.getY() < y + height)
{
System.out.println(r);
}
}
});
}
}
,我想知道是否有可能增加在一个循环中的所有位置的mousePressed。那么,在我的情况下,它不起作用,因为对于所有键它打印相同,这是最后一个已知的'r'(System.out.println(r))。你会如何接受这个?
你的意思是像一个坐标列表? – Dan
嗯,我正在制作一架钢琴,所以我想检测哪些键当前被按下,所以每个键都需要鼠标按下。 – pigi
我的回答对你有帮助吗? – Dan