gpt4 book ai didi

java - 在 ActionListener 之后缩放图像

转载 作者:行者123 更新时间:2023-12-01 23:30:15 25 4
gpt4 key购买 nike

我尝试创建一个图像查看程序,但在 Java 图像的放大和缩小方面遇到问题:D

我创建了一个 JPanel 并使用 BufferedImage 在我的计算机中显示图像。单击按钮后,它应该是 Zoom 。但这里的问题是,我重载了 JPanel 中的 PaintComponent() 方法来显示我想要的图像。在Google搜索之后,我认为我应该使用Graphic2D来处理这个问题。关注this帖子,行

Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, newImageWidth , newImageHeight , null);

应该放在重载方法paintComponent()中。然而,就我而言,我想在单击按钮后缩放图像,那么,我如何访问paintComponent()来进行缩放??

public class MiddlePanel extends JPanel {
private BufferedImage img;
private JButton jbtZoom = new JButton("Zoom");

public MiddlePanel(int width){

img = ImageIO.read(new FileInputStream(new File("C:\\Picture\\pic1.jpg")));

this.setPreferredSize(new Dimension(800,460));
}

public void paintComponent(Graphics g) {
g.drawImage(img......);
}

public void addComponentActionListener(){
jbtZoom.addActionListener(new ActionListener{
public void actionPerformed(){
//What should I do in here to zoom the image....
}
});
}

感谢您的帮助!

最佳答案

您需要像这样更改您的设计:

  • 将您的缩放状态存储在变量中,然后将您的重写的paintComponent方法应该查看该变量决定是否缩放/缩放多少。
  • 您的 ActionListener 将更新变量,然后调用 repaint()面板。

关于java - 在 ActionListener 之后缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19455138/

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