当前位置: 首页 > 知识库问答 >
问题:

将图像呈现给JPanel

柴声
2023-03-14

我目前正在尝试将一个图像呈现给JPanel。下面是我的代码:

import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class ScreenSaver extends JPanel {
    private static final long serialVersionUID = 001;

    public static void main(String[] args) {
        new ScreenSaver();
    }
    public ScreenSaver() {
        new Window(1600, 900, "ScreenSaver", this);
    }
    
    public Image ball;

    public  void initCode() {
      try {
          File pathToBall = new File("ball.png");
          ball = ImageIO.read(pathToBall);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
      renderImage()
    }
 
    public void renderImage(Graphics g) {
        g.drawImage(ball, 0, 0, 100, 100, null);
    }
}

在JFrame加载之后调用“initCode()”方法。我现在的问题是,我想调用“renderImage()”方法。在参数中,我必须放入“graphics g”来使用“g.drawimage”函数。遗憾的是,当我想调用“renderImage()”时,我现在不知道应该在括号中放些什么。有人能帮忙吗?

共有1个答案

祝锐
2023-03-14

Swing是事件驱动的,这意味着您从不直接调用绘画方法。自定义绘画组件的基础知识:

  • 扩展JComponent
  • 重写paintComponent(Graphics g),这是您可以放置呈现代码的地方
  • 重写getPreferredSize(),以便布局管理器能够完成其职责,一个合适的值是您的图像大小

另外我不明白这句话:

new Window(1600, 900, "ScreenSaver", this);
 类似资料:
  • 我正在制作一个使用swing的游戏,其中有一个用于选择关卡的JPanel和用于导航到关卡的JButtons。我还为整个级别屏幕创建了一个.png图像--是否可以在JButtons的顶部呈现该图像?如果不是,最简单的替代方案是什么?

  • 在我的后端,我有这样的对象,我正在渲染: 我需要获取所有元标记并将它们传递到index.jade: 但一切都崩溃了 我能在这里做什么? 我的错误是: 语法错误:/opt/rrr/yyyy/views/index.jade:7 5 | 链接(rel='stylesheet',type='text/css',href='build/css/app.css') 6|脚本(src='build/js/pl

  • 我需要帮助。我一直在搜索类似的帖子,但都没有解决我的问题(imagespool.js) 呈现图像(app.js):

  • 我正在使用iText 2.1.7。在我生成的文档的最后一页上,我有一个签名段落,我总是希望在最后一页的底部呈现。 我将所有文本捆绑到一个段落中,然后将其全部放在一个单元格表中,并使用PDFWriter将其写入页面上的固定位置。段落中的文本显示得很好,但图像未包含在内。 当我直接将段落本身添加到报告中时,图像渲染效果很好,但我没有这里需要的定位控制。 下面是代码片段: getSignatureIma

  • 我有一个使用EJS模板的NodeJS、Express3应用程序。我有一个路线,使‘预览’一些表单字段包含HTML和CSS张贴。它只是将它们插入并呈现我的模板,如下所示。 我现在想做的是一个类似的路线,强制下载文件,而不是… 我看到有一个和,但是我如何将这些与我的EJS“预览”视图模板一起使用呢? 附注。-我也在使用Mikeal的是同一个应用程序。我想知道是否有一种方法,我可以使用管道到fs(文件系

  • 问题内容: 我有一个基本的node.js应用程序,我正在尝试使用Express框架。我有一个存放文件的文件夹。但是加载网络浏览器时收到以下错误。 错误:找不到模块“ html” 下面是我的代码。 我在这里想念什么? 问题答案: 您可以让jade包含一个普通的HTML页面: 在views / index.jade中 在views / plain.html中 而且app.js仍然可以渲染jade: