當我運行這個程序時,我看到的只是一個空白的JFrame。我不知道爲什麼paintComponent方法不起作用。這裏是我的代碼:爲什麼我不能繪製到我的JPanel?
package com.drawing;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyPaint extends JPanel {
private void go() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.add(panel);
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.YELLOW);
g.fillRect(50, 50, 100, 100);
}
public static void main(String[] args) {
My paintTester = new MyPaint();
paintTester.go();
}
}
使用'this',而不是''中去(panel')' – chaosmasttter
另外,爲什麼沒有JFrame的方法和JPanel有兩個不同的類? –
只是一個建議,而不是在'JFrame'上設置大小,如果您重寫[__getPreferredSize()__](http://docs.oracle.com/javase/7/docs/api/javax/swing /JComponent.html#getPreferredSize()),就像重寫'paintComponent()'方法並調用'frame.pack()' –