我尝试使用GUI显示.png图片。但我在显示图片时遇到了麻烦。 我想我已经搞砸了我的指示,但似乎无法找到可行的解决方案。
我的指示告诉我......
似乎我需要创建一个初始化imgButton的方法。但是,如果我这样做,我不需要为每个Icon图像创建一个新变量吗?例如
imgButton = new JButton(image1);
final JButton imgButton2 = new JButton(image2);
final JButton imgButton3 = new JButton(image3);
我非常感谢能得到的任何帮助。感谢。
package ImageButton.Downloads;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ImageButton extends JFrame
{
private final JButton imgButton;
private final Icon clickImage;
public ImageButton()
{
JFrame frame = new JFrame();
frame.setTitle("Lab Button");
Icon image1 = new ImageIcon(getClass().getResource("Image1.png"));
Icon image2 = new ImageIcon(getClass().getResource("Image2.png"));
clickImage = new ImageIcon(getClass().getResource("Image3.gif"));
imgButton = new JButton(image1);
imgButton.setRolloverIcon(image2);
}
}
package ImageButton.Downloads;
import javax.swing.JFrame;
public class ImageButtonApp
{
public ImageButtonApp()
{
// TODO Auto-generated constructor stub
}
public static void main(String[] args)
{
ImageButton imageButton = new ImageButton();
imageButton.setSize(660, 660);
imageButton.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
imageButton.setVisible(true);
}
}
答案 0 :(得分:3)
您正在创建两个 JFrame,显示一个,但将JButton添加到 none 中。换句话说,您的代码忽略了这个rec:
将imgButton添加到此(ImageButton,这是一个JFrame)
解决方案:根据您的说明,只使用一个 JFrame,您的类,将JButton添加到它或添加到JFrame的JPanel,并显示它。
具体来说,改变一下:
JFrame frame = new JFrame(); // extra JFrame that's never used!
frame.setTitle("Lab Button");
到此:
super("Lab Button");
并在构造函数的末尾添加add(imgButton);
。