我无法得到这个椭圆在JFrame上绘图。在Jframe上绘图
static JFrame frame = new JFrame("New Frame");
public static void main(String[] args) {
makeframe();
paint(10,10,30,30);
}
//make frame
public static void makeframe(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(375, 300));
frame.getContentPane().add(emptyLabel , BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
// draw oval
public static void paint(int x,int y,int XSIZE,int YSIZE) {
Graphics g = frame.getGraphics();
g.setColor(Color.red);
g.fillOval(x, y, XSIZE, YSIZE);
g.dispose();
}
该框架显示,但没有画任何东西。我在这里做错了什么?
这是真正的问题。他的绘画方法从未被调用过。 – 2010-01-25 19:27:47
答案显然是错误的:JFrame!是一个JComponent并且没有paintComponent。虽然您可以实施该方法,但在正常绘画过程中从未调用该方法。没有原来的优势;-) – kleopatra 2011-03-31 14:06:30
@ kleopatra。绝对正确的是你。我已经改进了答案以反映你的观点。 – 2011-03-31 14:21:05