Java 缩小JPanel中的图像大小

Java 缩小JPanel中的图像大小,java,image,swing,imageicon,Java,Image,Swing,Imageicon,我正在尝试创建一个GUI,如下图所示 但是,当我运行文件时,图像的大小仍然保持原始大小 如何减小图像的大小以便在旁边添加文本 public class HomePage extends JFrame { public static void main(String[] args) throws IOException { new HomePage(); } public HomePage() throws IOException { this.setTitle(

我正在尝试创建一个GUI,如下图所示

但是,当我运行文件时,图像的大小仍然保持原始大小

如何减小图像的大小以便在旁边添加文本

public class HomePage extends JFrame {
  public static void main(String[] args) throws IOException {
    new HomePage();
  }

  public HomePage() throws IOException {
    this.setTitle("Picture Application");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    getContentPane().setBackground(Color.yellow);
    BufferedImage myPicture = ImageIO.read(new File("C:\\Users\\seng\\Desktop\\logo.png"));
    myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);
    JLabel picLabel = new JLabel(new ImageIcon(myPicture));
    add(picLabel);
    this.pack();
    this.setVisible(true);
  }
}
上面的语句返回一个从未引用过的新BuffereImage

代码应为:

//myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);    
Image scaled = myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);
JLabel picLabel = new JLabel(new ImageIcon(scaled));
上面的语句返回一个从未引用过的新BuffereImage

代码应为:

//myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);    
Image scaled = myPicture.getScaledInstance(10,30,Image.SCALE_SMOOTH);
JLabel picLabel = new JLabel(new ImageIcon(scaled));

据我所知,这就是你要寻找的答案:据我所知,这就是你要寻找的答案:
无法从图像转换为缓冲图像
@Seng,好吧,我有一个打字错误。我们在这里发布的任何代码都没有经过测试。您是否不理解需要将缩放图像指定给变量以使用它的基本概念?只需将语句更改为使用
Image
变量。当你在论坛上收到建议时,请花时间阅读API。
无法从图像转换为缓冲图像
@Seng,好的,我有一个输入错误。我们在这里发布的任何代码都没有经过测试。您是否不理解需要将缩放图像指定给变量以使用它的基本概念?只需将语句更改为使用
Image
变量。当你在论坛上得到建议时,花点时间阅读API。