使用getGraphics()绘制对象而不扩展JFrame

如何在没有类的情况下绘制对象(扩展了JFrame)?我找到了getGraphics方法,但它没有绘制对象。


import javax.swing.*;

import java.awt.*;

public class Main {

    public static void main(String[] args) {

        JFrame frame = new JFrame();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setVisible(true);

        frame.setSize(600, 400);


        JPanel panel = new JPanel();

        frame.add(panel);


        Graphics g = panel.getGraphics();

        g.setColor(Color.BLUE);

        g.fillRect(0, 0, 100, 100);

    }

}


尚方宝剑之说
浏览 492回答 3
3回答

GCT1015

您必须重写JPanel类中的paintComponent方法。因此,您应该创建一个扩展JPanel的类并在子类中重写paintComponent方法

幕布斯6054654

java.awt.image.BufferedImage为什么不只使用的实例java.awt.image.BufferedImage呢?例如BufferedImage output = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);Graphics2D g2 = output.createGraphics();g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,     RenderingHints.VALUE_ANTIALIAS_ON);g2.setColor(Color.WHITE);g2.fillRect(0, 0, output.getWidth(), output.getHeight());g2.setColor(Color.BLUE);g2.fillRect(0, 0, 100, 100);JOptionPane.showMessageDialog(null, new ImageIcon(output));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java