【发布时间】:2013-06-12 08:10:45
【问题描述】:
我们刚刚开始仅使用 AWT 在 Java 中进行 GUI 编程。我的任务是绘制一个椭圆并将其与标签一起显示。不知何故,我无法弄清楚如何同时显示它们。只要我添加
add(label);
对于我的程序,它只显示标签。 到目前为止,这就是我的代码......
import java.awt.*;
public class Ellipse extends Frame{
public static void main (String args[]) {
new Ellipse("Ellipse");
}
public void paint(Graphics g){
Graphics shape = g.create();
shape.setColor(Color.black);
shape.fillRect(100,80,100,40);
shape.setColor(Color.red);
shape.fillOval(100,80,100,40);
}
Ellipse(String s){
super(s);
setLocation(40,40);
setSize(300,300);
setBackground(Color.white);
Font serif = new Font("Serif", 1, 10);
setFont(serif);
Label label = new Label("Ellipse 1",1);
add(label);
setVisible(true);
}
}
实际的任务是画一个椭圆,用黑色填充背景并在下面放一个标签。除了我的问题之外,除了先绘制一个单独的矩形之外,是否有可能用颜色填充椭圆的背景?
【问题讨论】:
-
您应该使用paintComponent,而不是使用paint。查看Performing Custom Painting了解更多详情
-
为什么选择 AWT 而不是 Swing?请参阅Swing extras over AWT 上的这个答案,因为有很多放弃使用 AWT 组件的充分理由。如果您需要支持较旧的基于 AWT 的 API,请参阅 Mixing Heavyweight and Lightweight Components。