私が作っているゲーム(麻雀ソリティア)内でタイルオブジェクトを「ハイライト」して並べ替えようとしています。これを行うには、Rectangle2Dオブジェクトをタイルと同じ位置に描画し、マウスをクリックしたときにそのオブジェクトを表示させようとしています。マウスのクリックで矩形を描く - 表示されない
タイルが選択されたときに動作するようにマウスクリックイベントを取得できますが、何らかの理由でmousePressed関数内にあるときに四角形が描画されません。私は理由を理解できないようです...
ここで私は関連コードを検討しています - 私はそれを必要に応じて拡張することができます!
/* Above this, the positions of tiles are set */
if (content[i][y][x].isVisible()) {
/* Draws the image to screen at the appropriate location */
graphics.drawImage(image, x*TILEW+TILEW/2+i*TILESKEW, (y+1)*TILEH/2-i*TILESKEW,null);
}
/* Represents the area around a tile, so that you can determine
* whether appropriate area pressed within a tile */
final Rectangle2D rect = new Rectangle2D.Double(x*TILEW+TILEW/2+i*TILESKEW,(y+1)*TILEH/2-i*TILESKEW, image.getWidth(null), image.getHeight(null));
/* Set colour of border rectangle */
graphics.setColor(Color.red);
/* Store positions and sizes of tile objects */
final int xPos = x*TILEW+TILEW/2+i*TILESKEW;
final int yPos = (y+1)*TILEH/2-i*TILESKEW;
final int height = image.getHeight(null)+2;
/* This works - outside of the mouse event */
//graphics.drawRoundRect(xPos, yPos, width, height, 7, 7);
/* Mouse event */
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
/* Draw the rectangle to the screen -- Doesn't display! */
graphics.drawRoundRect(xPos, yPos, width, height, 7, 7);
}
「グラフィックス」のグラフィックオブジェクトは、関数に渡されます。
public void paintComponent(final Graphics graphics) { ... }
任意の提案をいただければ幸いです! ご協力いただきありがとうございます!
早いほど良いのヘルプについては、[SSCCE](http://sscce.org/)を投稿してください。 –