1
我试图创建两个组件,每个组件都有一个paintComponent()
方法 - 目标是父对象将绘制默认艺术,然后子对象可以在其上绘制。一个例子可能是创建扑克牌:您有一个父类Card
类,它绘制默认卡片,然后是特定于套件的类,它们扩展Card
并在其上绘制其细节。用paintComponent()和继承绘制“图层”
这里是什么,我试图完成一个图:
这里是我一起工作的代码。我的具体问题是:绘制组件时 - 如果子类没有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
}
//.....
}
对不起,但那不是我想要完成的。我已经编辑了更具体的问题。 – 2012-07-07 20:58:07