当前位置: 首页 > 面试题库 >

绘画组件方法不适用于JFrame

丁雅惠
2023-03-14
问题内容

我尝试使用JLabel’s之后尝试在屏幕上绘制图像,现在正在尝试paintComponent方法。我在看不到任何结果并且该方法没有被调用之后尝试插入断点,并且什么也没有出现。我该怎么办?这是我的重要代码-

`

     public void createWindow(){

            frame.setVisible(true);  
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.pack();
    frame.setSize(xSize, ySize);
            frame.setLocation(0, 0);
            frame.addComponentListener(this);
            //frame.add(im);

    }

public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(placeholder, 0, 0, getWidth(), getHeight(), null); g.drawString("Hello", 100, 100); }

另外,如果有区别,我正在使用JFrame而不是JPanel或组件。


问题答案:

JFrame没有paintComponent方法。您应该避免直接绘制到框架上,而应使用JPanel和覆盖其paintComponent方法

您还应该使用@Override批注,如果父类没有您要覆盖的方法,则会引发编译器异常



 类似资料:
  • 您好,我正在尝试使用PostConstruct方法初始化字段,但在测试中,此方法不会填充bidiMap字段。 有没有办法模拟字段,它是的字段? 测试: 正在测试的类:

  • 起初,我在使用< code>writeAndFlush(...)直到我偶然发现了这个修复。现在,我已经可以使用< code>writeAndFlush(...)每个字符串都带有后缀/r/n。当我尝试发送< code>ByteBuf对象时,问题仍然存在。显然,我不能只在消息末尾添加/r/n。对此有什么解决办法吗? 如果有帮助,我将使用

  • 问题内容: 由于某些原因,当我尝试从BytesIO流制作图像时,它无法识别该图像。这是我的代码: 以及它引发的错误的堆栈跟踪: 我正在使用PIL的Pillow实现。 问题答案: 将BytesIO视为文件对象,在完成图像写入后,文件的光标位于文件的末尾,因此当尝试调用时,它将立即获得EOF。 您需要添加一个经过之前到。

  • 下面是我的自定义注释。 我想用“MyAnnoation”做点什么,所以我声明了和如下方法。 下面的服务被其他类“自动安装”。所以我认为这不是与AOP代理相关的问题。 下面的代码调用上面的服务 如果将注释到一个类,则会调用procedure(),但如果一个方法带有类似于上述代码的注释,则该方法不起作用。我希望它只使用方法。 我想解决什么?

  • 我最近开始缓存一个方法的结果。我使用@Cacheable和@CachePut来实现所需的功能。 但不知何故,save操作并没有更新findAll方法的缓存。以下是相同的代码段: 对于findAll方法的第一个调用,它将结果存储在“persons”缓存中,对于所有后续调用,它将返回相同的结果,即使在两者之间执行了save()操作。 我对缓存很陌生,所以任何关于这方面的建议都会很有帮助。 谢谢

  • 我试图在一个组件内使用点击指令,但它似乎不起作用。当我单击组件时,当我应该在控制台中单击测试时,没有任何事情发生。我在控制台上没有看到任何错误,所以我不知道我做错了什么。 index.html 一个pp.vue Test.vue(组件)