【问题标题】:Large Image on JButton not showingJButton 上的大图像未显示
【发布时间】:2014-03-09 07:55:16
【问题描述】:

有没有办法显示比小 imageIcon 更大的图像?

我有一个 64x64 png 图像,我想在按钮上显示(占据整个按钮)。

但是当我使用时

ImageIcon icon = new ImageIcon("somePath");
JButton btnBuildStructure = new JButton(icon);

显示的图像只是我想要显示的图像左上角的 16x16

我该怎么做? 我希望它看起来像这样

【问题讨论】:

  • “有没有办法显示比小 imageIcon 更大的图像?” 当然。我使用的图像比按钮中的图像大得多。 “我该怎么做?” 1) 为了尽快获得更好的帮助,请发布MCTaRE(最小的完整测试和可读示例)。 2) 例如,获取图像的一种方法是热链接到this answer 中看到的图像。
  • ..事实上,here 是在按钮(棋盘的位置)中显示的 64x64 图像(棋子)的问答(带屏幕截图)。

标签: java swing button jbutton imageicon


【解决方案1】:

JButton 应该自然地调整为显示整个图标的最佳首选大小。如果这没有发生,那么您很可能人为地限制了 JButton 的大小。解决方案:使用好布局管理器,在添加所有组件之后调用pack(),在设置GUI可见之前,避免空布局,如果您更改任何组件或其大小或首选大小,请在容器上调用 revalidate() 和 repaint() (例如,如果您在程序运行时更改图标)。

【讨论】:

  • 我在 JPanel 中绘制按钮,然后将其添加到另一个 JPanel 的边框布局中,因此我无法访问 pack() 方法。除非我想到了错误的方法,否则不是打包一个 JFrame 方法吗?
  • @JosephDour:重要的是在添加所有组件之后,您的顶级窗口是packed()。如需更多帮助,请考虑创建并发布minimal example program(请点击并阅读链接)。
  • “我正在 JPanel 中绘制我的按钮,..” 如何? 以 a 的形式回答MCTaRE(最小的完整测试和可读示例)。如上所述,热链接到图像。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
  • 2013-07-06
  • 2012-04-01
  • 2015-02-02
  • 2021-02-11
  • 2018-04-04
相关资源
最近更新 更多