【发布时间】:2011-01-08 13:23:45
【问题描述】:
这是我扩展 JPanel 的画布类:
package start;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Board extends JPanel
{
private static final long serialVersionUID = 1L;
public Board() {}
public void paintComponent(Graphics g)
{
int width = getWidth();
int height = getHeight();
this.setBackground(Color.green);
g.setColor(Color.black);
g.drawOval(0, 0, width, height);
}
}
这是我调用它的方法:
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Hello");
frame.setPreferredSize(new Dimension(700, 700));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Board b = new Board();
frame.getContentPane().add(b);
frame.pack();
frame.setVisible(true);
}
但这会在默认颜色上显示椭圆形。我也尝试不使用this.,然后尝试设置b 的颜色,并在构造函数中设置颜色,但这些都不起作用。怎么了?
编辑:抱歉没有说清楚,我的目标是在绿色背景上显示一个黑色的细椭圆形。
【问题讨论】:
-
文森特·拉姆达尼是正确的。另请参阅java.sun.com/products/jfc/tsc/articles/painting 了解更多信息