日期:2014-05-20  浏览次数:20843 次

帮忙解答 哦
我用以下代码 :
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class PanelPaint extends JPanel {

  public PanelPaint() {

  }

  public void paintComponent(Graphics g) {
  super.paintComponent(g);

  //Graphics2D g2 = (Graphics2D) g;
  g.setColor(Color.blue);
   
  for(int i = 0; i < 5; i++){
  for(int j = 0; j < 7; j++){
  g.drawRect(10 + 50*j, 10 + 50*i, 50, 50);
 
  }
  }
  }

  public static void main(String args[]) {
  JFrame frm = new JFrame();
  frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frm.setSize(383, 310);
  frm.getContentPane().add(new PanelPaint());
  frm.setVisible(true);
  }
}
写出一窗口,由于不好传,我就不上传图片了 (不好意思哦);大家可以下载了去运行一下试试, 有5*7=35个方格,我想的是:
当用鼠标点击方格的时候,就是希望他有mouseclick()事件了,可以改变他的颜色。希望大家帮忙哦

------解决方案--------------------
那么你就应该定义一个 二维数组 保存相应方格的颜色。

在Panel添加MouseListener,在MouseClick的事件里判断点击的位置,比如你的每个格的长宽是一定的。

color[(int)mouseEvent.getX() / 宽度][(int)mouseEvent.getY() / 高度]; //当然要判断是否越界啊。