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

JFrame到图像而不显示JFrame

彭高畅
2023-03-14
问题内容

我试图在不显示JFrame本身的情况下将JFrame渲染到图像。我试过使用这段代码:

private static BufferedImage getScreenShot(Component component)
{
    BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB);
    // call the Component's paint method, using
    // the Graphics object of the image.
    component.paint(image.getGraphics());
    return image;
}

然而,当这仅适用JFramesetVisible(true)设置。这将导致图像显示在屏幕上,这不是我想要的。我也尝试创建类似这样的东西:

public class MyFrame extends JFrame
{
    private BufferedImage bi;

    public MyFrame(String name, BufferedImage bi)
    { 
         this.bi = bi;
         super(name);
    }

    @Override
    public void paint(Graphics g)
    {
         g.drawImage(this.bufferedImage, 0, 0, null);
    }
}

但是,这将显示黑色图像(如上面的代码)。我很确定我所追求的是可能的,问题是我真的找不到如何做。我在使用自定义Swing组件方面的经验非常有限,因此任何信息都会受到赞赏。

谢谢。


问题答案:

这是应该解决问题的代码段:

Component c; // the component you would like to print to a BufferedImage
JFrame frame = new JFrame();
frame.setBackground(Color.WHITE);
frame.setUndecorated(true);
frame.getContentPane().add(c);
frame.pack();
BufferedImage bi = new BufferedImage(c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = bi.createGraphics();
c.print(graphics);
graphics.dispose();
frame.dispose();


 类似资料:
  • 问题内容: 我有点卡住。为什么不做这项工作?我只是收到一条错误消息: java.lang.NoSuchMethodError:主要 线程“主”中的异常 问题答案: main需要是静态的,并且必须具有String []而不是String的参数。 为了解决这个问题,将所有东西都放在构造函数中,例如

  • 最近我一直在尝试java图形,并决定制作一个可以打印拼贴图像的程序。这个程序的构造函数接受一个图像数组和每个图像将显示的宽度。 当我运行程序时,我最初使用以下方法来设置JFrame窗口的大小: 不幸的是,JFrame确实显示了部分图像。JFrame窗口不够低,无法显示所有窗口。为了再次确认我的数学没有出错,我用下面这行代码进行了测试: 同样的问题也发生了。直到我使用了下面的一行,整个图像才显示出来

  • 我尝试了一切,但图像不会显示,我试图缩小图像,但没有用,我试图改变路径,我试图更改图像的位置,但没有帮助,我试图在互联网上搜索,但什么都没有。 我看到的只是空白的图形用户界面,没有文本和图像。如果你能帮我,你会帮我一个大忙。 代码如下:

  • 我正在使用此代码显示图像 图片存在于storage\app\public\images上,但它没有显示在我的页面上,顺便说一句,我已经创建了php artisan storage:link

  • 我从django应用程序开始,并尝试在主页中显示图像。但是图像没有被显示。 我的settings.py: 我的网址.py: 我的home.html: 我得到文本显示而不是图像

  • 我想实现以下功能: 例如: 当用户从JComboBox中选择“Profile Pic”项时,“Profile Pic”文件夹中的相关图像应加载在同一帧中 同样,当用户选择“产品Img”项目时,应加载“产品Img”文件夹中的相关图像,以替换以前的图像 以下是代码片段,请建议任何更改