我無法得到這個橢圓在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