JFrame不绘制矩形

lec*_*rdo 0 java graphics swing paint

有一个非常简单的问题,我之前没有遇到过.我在做项目之前使用了类似的布局.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class q1
{
    public static void main (String Args [])
    {
        q1Window showMe = new q1Window();
    }
}

class q1Window
{
    q1Window()
    {
        JFrame window = new JFrame("Tutorial 1");
        window.setSize(600,600);
        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void paint (Graphics back)
    {
        back.setColor(Color.black);
        back.fillRect(30,30,100,200);           
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我似乎无法打印任何JFrame显示的东西.

cam*_*ckr 5

您不能只将paint()方法添加到任何类.只有Swing组件有绘画方法.

阅读自定义绘画的Swing教程中的部分以获取更多信息和工作示例.

快速摘要是您需要覆盖paintComponent()JPanel 的方法,然后将面板添加到框架.