マインスイーパを作り直そうとしていますが、地雷カウンターなどの他のコンポーネントを画面に追加すると、ボタンの後ろに数字が表示されなくなります。
この特定のケースでは、2 つの JPanel があります。最初の JPanel には、鉱山カウンターや、ボード (カスタム JButton の列ごとの行の配列) を含む別の JPanel など、複数のコンポーネントが含まれます。
地雷カウンターを追加する前は、すべてが正常に機能しているように見えました。数値は正常に描画され、ロジックは機能していました。しかし、それは私の問題があるところではありません。
私のカスタム JPanel (ラベル、ボードなどを含むパネル) では、paintComponent() メソッドをオーバーライドして、数字を画面に出力しています。しかし、画面に数字を追加する必要がある別の JPanel を追加すると、いくつかの問題が発生しました。
まず、描画しているパネルを区別する方法がわかりませんでしたが、「g = boardPanel.getGraphics()」のような行で修正を見つけたと思います。これが機能する場合、他の場所で問題が発生しています。私が自分の paintComponent() メソッドをどのように構築したかについては、おそらく順序がどのように見えるべきかわかりません。
ここに私が持っているものからのある種のコードがあります:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g = boardPanel.getGraphics();
//Draw the lines and numbers behind and separating the tiles. These, in my
//mind, are drawn to the graphics object regarding the playable board (the
//board, not the panel including the mine counter, etc.) But, when I click
//on a tile, there are no mine indicators behind it.
}
要するに、paintComponent() メソッドを構造化する方法がわからないだけだと思います。ボード パネル用のものと、地雷の数とボード パネルを保持するものという 2 つの異なるグラフィックス オブジェクトをいじる必要があるからです。
どんな助けでも大歓迎です。ありがとう。