【发布时间】:2021-02-11 14:23:26
【问题描述】:
我有 png 图标并将它们用作 JButton / JLabel 中的图标。
问题是运行时显示的图片比原来的图标大,而且因为这个调整大小,超级难看。
这是一个例子:
原始图标(左)以及它在JButton 中的呈现方式(右)
这个最小示例的源代码很简单:
public class Main {
public static void main(String... args) {
JFrame frame = new JFrame("Test");
frame.setBounds(0, 0, 120, 80);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FlowLayout());
ImageIcon icon = new ImageIcon("icon.png");
frame.getContentPane().add(new JButton("Test", icon));
frame.setVisible(true);
}
}
这是预期的吗?如果没有,我该如何避免这种情况?我尝试了很多方法来强制图像、按钮等的大小,但无法显示正确的图像。
我测试了各种尺寸的图标:16x16、17x17、18x18、19x19、20x20,每次JButton上显示的图标都比原来的大一点,看起来很难看:
谢谢!
干杯。
【问题讨论】:
-
您是否可以发布指向
icon.png的链接,以便我可以尝试重现您声称看到的内容? -
你试过像shown in this answer一样自己缩放图像吗?
-
谢谢阿布拉。绝对任何图标都会发生同样的情况。使用以下 URL 中的图标尝试了相同的代码: ImageIcon icon = new ImageIcon(new URL("cdn4.iconfinder.com/data/icons/6x16-free-application-icons/16/…)); 发生了同样的问题:图标稍大且丑陋。
-
谢谢 Maloomeister:是的,我试过了。该图标是 16x16,我实际上希望它以 16x16 的原始大小显示。我尝试将大小调整为 16x16(尽管它不应该是必需的),但图标仍然显示得稍大。
标签: java swing jbutton jlabel imageicon