我最近阅读了这个线程(Creating a custom button in Java)关于通过扩展JButton类在java中创建自定义按钮,但是此线程上的所有解决方案都使用用java绘制的图形。如何使用图像库在java中创建自定义JButton?
我想让我的按钮基于我在Photoshop中绘制的按钮图像。于是,我就运用我在那个线程对这个结果看:
import javax.swing.*;
import java.awt.*;
public class nextButton extends JButton {
@Override
protected void paintComponent(Graphics g) {
Image image = new ImageIcon("nextButton.png").getImage();
g.drawImage(image,0,0,this);
}
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
size.setSize(75, 150);
return size;
}
}
当我运行已经添加了这个按钮,一个JPanel主程序不显示。我假设它可能是几个原因之一:
a)JButton的大小不匹配的图像? b)我没有正确加载图像。在笔记中,我的讲师给了我他写出了带有“imageName.png”的显示图像代码,没有文件路径,所以我不知道这是否是正确的方法,或者程序知道如何加载图像。 c)迄今为止我还不了解的其他东西。
如果有人知道如何解决这个问题,我会非常感激。
非常感谢!
一对夫妇的意见,或多或少无关你的问题:一)的paintComponent越权非法B)永不永远_change_特别是在吸气Ç任何东西),的setSize完成通过LayoutManager无论如何都不会影响一个理智的应用程序d)重写getPreferredSize并根据组件的内部结果返回合理的尺寸提示是正确的,这里可能是图像的大小e)将图像加载到绘画中(在绘画循环中不会有繁重的工作!),而不是在施工时加载一次 – kleopatra
btw,请学习java命名约定并坚持使用它们 – kleopatra