首页 > 解决方案 > 如何在java中导出图像的2个不同大小的图像

问题描述

我下面的 java 代码使用 jswing 来显示图像。当用户触发 actionPerformed(ActionEvent e) 我想要以 400 X 400 和 300 X 300 大小导出的两个图像。所以它将是 2 个单独的图像而不仅仅是一个。我不知道我必须编写一个单独的函数来做到这一点。

  import java.awt.BorderLayout;
    import java.awt.GridLayout;
   import java.awt.event.ActionEvent;
   import java.awt.event.ActionListener;
     import javax.swing.*;


   public class Listener extends JFrame implements ActionListener{


private JLabel label1,label2;

public Listener(){
    setTitle("Question");
    JPanel Panel1 = new JPanel();
    Panel1.setLayout(new BorderLayout());

    JPanel Panel2 = new JPanel();
    Panel2.setLayout(new GridLayout(2,1));


     JLabel myButton1 = new JLabel(new ImageIcon("/Users/zman/Desktop/dropIn/e.png"));


    JButton myButton2 = new JButton("2:Export");





    myButton2.addActionListener(this);


    Panel2.add(myButton1);
    Panel2.add(myButton2);


    Panel1.add(Panel2,BorderLayout.CENTER);

    add(Panel1);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(320, 240);

    setVisible(true);
}
public void actionPerformed(ActionEvent e) {

}
public static void main(String[] args) {
    new Listener();
}}

标签: javaimageswingactionevent

解决方案


将其分解为以下步骤:

  1. Image_ImageIcon
  2. 使用Image.getScaledInstance(…)方法将图片缩放到想要的大小
  3. 用于ImageIO将 写入Image文件。

由于您想要两个图像,我建议您创建一个方法并将宽度、高度和文件名传递给该方法。


推荐阅读