gpt4 book ai didi

java - 调整标签图标大小

转载 作者:行者123 更新时间:2023-12-01 14:03:01 26 4
gpt4 key购买 nike

我从 C# 背景开始对 Java 很陌生。我正在关注this tutorial将图像添加到我的项目并显示在标签中。在c#中,我们使用Picture-box并设置图像属性,在c#中,我还可以在设计时通过调整图片框的大小来调整图片框中的图像大小。

我已按照教程将图像添加到标签中,但现在的问题是图像很大,我想重新调整大小。我尝试过调整标签大小,但图像没有压缩或调整大小。

我应该做什么来调整图像大小?

编辑:

jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/me/musiconweb/resources/Music-icon.png"))); // NOI18N

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(40, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 273, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(58, 58, 58)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 265, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(29, Short.MAX_VALUE))
);

pack();

最佳答案

尝试以下操作:

改变

jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/me/musiconweb/resources/Music-icon.png")));

BufferedImage img = null;
try {
img = ImageIO.read(new File("/org/me/musiconweb/resources/Music-icon.png"));
} catch (IOException e) {
e.printStackTrace();
}
BufferedImage dimg = img.getScaledInstance(label.width, label.height,
Image.SCALE_SMOOTH);

jLabel1.setIcon(new javax.swing.ImageIcon(dimg));

希望有效。 :)

此外,请考虑 @MadProgrammer 讨论的关于不使用 getScaledImage 的内容。不过,如果我处于您的立场,我会执行增量阶段,首先尝试一下,如果有效,请继续使用 Graphic.scaleImage 方法。

更多信息请关注Resize a picture to fit a JLabel

关于java - 调整标签图标大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192492/

26 4 0