为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

尚方宝剑之说 2019-10-21 12:51:50
如何在没有类的情况下绘制对象(扩展了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);    }}
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-10-21
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 491 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信