所以我正在制作一个gui,我有一个背景图片。我不知道如何将它设置为背景,所以任何帮助都会很好。探索也会很好。此外,在我们将该图像作为背景后,我们如何将图像调整大小到窗口的大小。例如
image.setSize(frame.getHeight(), frame.getWidth());
但我不知道这是否有效。图像名称为ABC0001.jpg,帧名称为frame。谢谢!
答案 0 :(得分:3)
要调整图像大小,可以使用
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), this); // draw the image
}
或者您可以使用componentlistener,实现方式如下:
final Image img = ...;
ComponentListener cl = new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
Component c = ce.getComponent();
img = im1.getScaledInstance(c.getWidth(), c.getHeight(), Image.SCALE_SMOOTH);
}
};
使用第二种解决方案时,图像质量会随着时间的推移而降低,因此建议您将原件和副本分开。
答案 1 :(得分:0)
创建一个扩展JPanel的类。让该类通过重写paintComponent
来加载图像class BackgroundPanel extends JPanel
{
Image img;
public BackgroundPanel()
{
// Read the image and place it in the variable img so it can be used in paintComponent
img = Toolkit.getDefaultToolkit().createImage("ABC0001.jpg");
}
public void paintComponent(Graphics g)
{
g.drawImage(img, 0, 0, null); // draw the image
}
}
现在你有这个类,只需将它添加到你的JFrame(或者你想要的背景)。
//create refrence if you want to add stuff ontop of the panel
private BackgroundPanel backGroundPanel;
//constructor
add(backGroundPanel, BorderLayout.CENTER);
背景的大小将填满整个帧,因此除非你想要它更小,否则不需要缩放它