JFrame未绘制矩形



有一个我以前从未遇到过的非常简单的问题。我以前在做一个项目时使用过类似的布局。

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);           
    }
}

现在,无论JFrame显示什么,我似乎都无法打印任何内容。

不能只向任何类添加paint()方法。只有Swing零部件具有绘制方法。

阅读Swing教程中关于自定义绘制的部分,了解更多信息和工作示例。

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

正如camickr所指出的,您需要一个Swing组件来执行您想要的操作,在这种情况下,就是覆盖paint(),尽管您应该覆盖paintComponent()

试试这个:

class q1 {
    public static void main(String Args[]) {
        q1Window showMe = new q1Window();
    }
}
class q1Window extends JFrame {
    q1Window() {
        setTitle("Tutorial 1");
        setSize(600, 600);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void paint(Graphics back) {
        back.setColor(Color.black);
        back.fillRect(30, 30, 100, 200);
    }
}

相关内容

  • 没有找到相关文章

最新更新