私は現在、プロジェクトのヘビとはしごのゲームを作っています。私は前に直面していなかった問題に遭遇しました。私はゲームボード上でサークルになるPlayerというクラスを持っています。ペイントコンポーネントが楕円を描いていない
paintComponentメソッドは、しかし、それはあなたが新しいコンポーネントを作成するためにJComponent
を拡張してはならないではない
public class Player extends JComponent {
private double playerX;
private double playerY;
private double diameter;
private String playerColor;
HashMap<String, Color> colorMap = new HashMap();
public Player(String playerColor, double playerX, double playerY, double diameter) {
this.playerColor = playerColor;
this.playerX = playerY;
this.playerY = playerY;
this.diameter = diameter;
setSize(getPreferredSize());
setLocation((int) diameter, (int) diameter);
}
@Override
public Dimension getPreferredSize() {
return new Dimension((int) diameter * 2, (int) diameter * 2);
}
@Override
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
super.paintComponent(g2d);
setDoubleBuffered(true);
g2d.drawOval((int) playerX, (int) playerY, (int) diameter * 2, (int) diameter * 2);
System.out.println(true);
}
}
問題を示す正しい[mcve]を投稿してください。 – camickr
@camickrあなたが探していたものが欲しいと思います。問題は、paintComponentが1回だけtrueを出力していることです。なぜそれが描画されていないのですか? –
「完了」はどうですか?コードをコンパイルしてテストすることはできません。 '問題は、paintComponentが本当に印刷されないということです。' - 問題は、実際にコンポーネントをどのように使用するかのコンテキストです。実際にコンポーネントをフレームにどのように追加しますか?あなたが掲示したコードは妥当と思われます、おそらく半径は0ですか?おそらく問題はレイアウトマネージャですか?画像全体を見ることなく、あなたがしていることを推測しています。 – camickr