所以我制作了一个 gui,我有一个背景图片。我不知道如何将其设置为背景,所以任何帮助都会很好。一个解释也很好。另外,在我们将该图像作为背景之后,我们如何将图像调整为窗口大小。比如,
image.setSize(frame.getHeight(), frame.getWidth());
但我不知道这是否可行。图像名称为 ABC0001.jpg,框架名称为 frame。谢谢!
问问题
11255 次
2 回答
3
要调整图像大小,您可以使用
public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), this); // draw the image
}
or you can use a componentlistener, implemented like:
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);
}
};
Image quality will degrade over time with the second solution, so it is recommended that you keep the original and the copy separate.
于 2012-04-11T15:29:10.180 回答
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);
背景的大小将填满整个框架,因此无需缩放它,除非您希望它更小
于 2012-04-11T14:35:38.393 回答