我正在製作一個繪圖板,而且我有幾個問題。當使用drawRect時圖形太慢了
- 每當我嘗試繪製它,它不會自動更新。廣告我通常不得不調整屏幕的大小以便更新。
- 我該如何做一些類似於mouseDragged的函數,我可以不斷地獲取x和y座標?
下面是代碼:
import java.awt.geom.*;
class griddedInput extends JComponent implements MouseListener
{
int SIZE = 10;
int scSize = 300;
int sSize = scSize/SIZE;
boolean [][] grid = new boolean[sSize][sSize];
public griddedInput(boolean grid[][])
{
grid=grid;
setPreferredSize(new Dimension(scSize,scSize));
addMouseListener(this);
}
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
int x, y;
for(y = 0; y < sSize; y ++) {
for(x = 0; x < sSize; x ++) {
if(grid[y][x])
g2.setColor(Color.BLACK);
else
g2.setColor(Color.WHITE);
g2.fillRect((x * SIZE), (y * SIZE), sSize, sSize);
}
}
}
@Override
public void mouseClicked(MouseEvent e) {
int squareX = (int)e.getX()/SIZE;
int squareY = (int)e.getY()/SIZE;
grid[squareY][squareX] = !grid[squareY][squareX];
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
請爲代碼塊使用一致的邏輯縮進。 –