それぞれメソッドを持つ 2 つのコンポーネントを作成しようとしていますpaintComponent()
- 目標は、親オブジェクトがデフォルトのアートをペイントし、子オブジェクトがそれをペイントできるようにすることです。例として、トランプの作成がありCard
ます。デフォルトのカードを描画する親クラスがあり、Card
その上に詳細を拡張して描画するスイート固有のクラスがあります。
これが私が達成しようとしていることの図です:
ここに私が取り組んでいるコードがあります。私の特定の問題は次のとおりです。コンポーネントが描画されると、子クラスにメソッドがない場合paintComponent
、親アートが描画されます。ただし、子にメソッドを実装するpaintComponent
と、親は描画されず、子のみが描画されます。
これが私のコードです:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
abstract public class Tile extends JPanel {
public static final int DEFAULT_WIDTH = 100;
public static final int DEFAULT_HEIGHT = 100;
@Override public void paintComponent(Graphics g){
//Set Size
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
Graphics2D g2 = (Graphics2D)g;
//Draw default art
}
@Override public Dimension getMinimumSize()
{ return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT); }
@Override public Dimension getPreferredSize()
{ return getMinimumSize(); }
//.....
}
import javax.swing.*;
import java.awt.*;
public class CharacterTile extends Tile {
protected char symbol;
public CharacterTile(char symbol){
this.symbol = symbol;
}
@Override public void paintComponent(Graphics g){
super.paintComponents(g);
Graphics2D g2 = (Graphics2D)g;
//Draw details
}
//.....
}