【发布时间】:2014-11-18 15:54:42
【问题描述】:
我有一个非常简单的 AWT 绘画。只是为了让事情变得更大。但不能让它工作......
发生的情况是只显示 elypse2 - 无论是否重新绘制()。
我也尝试使用 Swing 组件而不是 AWT(JFrame、JComponent),但这也没有任何改变。
是否需要使用布局管理器?但我只想绘制图形组件,如圆弧、矩形、直线、折线、aso ...
这是 main():
public static void main(String[] args) {
Frame testFrame = new Frame("Grafx-Test");
testFrame.setSize(300, 200);
testFrame.setAlwaysOnTop(true);
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
testFrame.setVisible(true);
}
});
Elypse elypse = new Elypse(new Point(70, 80), 30, 30, Color.BLUE, false);
testFrame.add(elypse);
Elypse elypse2 = new Elypse(new Point(70, 50), 50, 30, Color.BLUE, true);
testFrame.add(elypse2);
}
这里是使用的类:
public class Elypse extends Canvas {
private Point start;
private int width;
private int height;
private Color c;
private boolean filled;
public Elypse(Point start, int width, int height, Color c, boolean filled) {
this.start = start;
this.width = width;
this.height = height;
this.c = c;
this.filled = filled;
}
@Override
public void paint(Graphics g) {
g.setColor(c);
if (filled) {
g.fillOval(start.x, start.y, width, height);
}
else {
g.drawOval(start.x, start.y, width, height);
}
}
}
【问题讨论】:
-
可能duplicate.