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