gpt4 book ai didi

java - 如何从主程序访问重绘?

转载 作者:行者123 更新时间:2023-12-01 23:08:55 24 4
gpt4 key购买 nike

我正在开发一个 Java 程序,该程序基本上从文件源渲染图像,然后将该图像绘制到面板(位于框架上)上。

现在我能做的就是调用一行代码

printpanel.getGraphics().drawImage(myimage.globalimage, 0,0, null);

其中 myimage 是包含图像的类。

正如你们很多人所知,这只会打印图像 1 次,如果我调整框架大小,图像就会消失。

现在解决这个问题的方法是将行放入 repaint 方法中,但我现在处于 main 方法中,所以我如何访问定义 repaint 方法并在 main 方法中更改它?

谢谢!

================================================== =================================================== ====

我的代码:

主要类(class):

    package imagetester;
import java.awt.image.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.Graphics2D.*;
import java.io.*;

public class Imagetester
{



public static void main(String[] args)
{
JFrame printframe = new JFrame("The drawing frame");
JPanel printpanel = new JPanel();
printframe.setSize(700,700);
printpanel.setSize(700,700);
printframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
printframe.add(printpanel);
printpanel.setVisible(true);
printframe.setVisible(true);

Imageobject myimage = new Imageobject();
try
{
myimage.setImage("word.jpg");
}
catch(IOException e)
{
System.out.println("the image failed!");
}


printpanel.getGraphics().drawImage(myimage.globalimage, 0,0, null);
printpanel.repaint();


System.out.println("hi");

}

}

我的图像类:

    package imagetester;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class Imageobject
{
BufferedImage globalimage;

public void setImage(String filename) throws IOException
{
globalimage = ImageIO.read(new File(filename));

}

public void Imagebject()
{

}
}

最佳答案

我不确定我是否完全理解,但如果您想要做的是在窗口内显示带有图像的面板,您应该子类化 JPanel (或您想要的任何其他面板),并重写 PaintComponent 方法绘制图像。大致如下:

public class ImagePanel extends JPanel {
private Image image;

public ImagePanel(Image image) {
this.image = image;
}

@Override
protected void paintComponent(graphics g) {
g.drawImage(image, 0, 0, this);
}
}

关于java - 如何从主程序访问重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com