这个问题可能是由于没有使用正确的 Swing 组件,例如 JFrame。请确保你引入了正确的包,并检查你的代码是否使用了像 frame.pack() 或者 frame.setVisible(true) 的方法。另外,一些更新的操作系统可能会对 AWT 应用程序制造困扰,因此使用 Swing 或者其他 GUI 框架会更加稳定。以下示例代码展示了如何在 JFrame 上绘制内容:
import javax.swing.JFrame;
import java.awt.*;
public class CanvasExample extends JFrame{
public static void main(String[] args) {
JFrame frame = new JFrame("Canvas Example");
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DrawingCanvas canvas = new DrawingCanvas();
frame.getContentPane().add(canvas);
frame.setVisible(true);
}
}
class DrawingCanvas extends Canvas {
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
g.fillRect(50,50,100,100);
}
}
这个示例代码会创建一个 JFrame,将一个画布添加到其中,并在画布上绘制一个矩形。请注意,在 DrawingCanvas 类中的 paint() 方法中,我们调用了 super.paint(g) 方法,这个方法会确保我们的画布可以正常地刷新。