因此,我一直在处理我的程序,并且无法使用网络地图的背景图像设置JFrame,然后使用MigLayout设置JPanel 在JFrame的顶部,这将允许我根据网络地图放置图像。我已经看到了关于如何设置背景图片的几种不同方法,并尝试使用我在本网站其他地方找到的示例,但它不太适用。另外,我对此进行了更多的研究,发现JFrame的JPanel ontop可能会阻止JFrame的背景图像被看到。我希望有人可以看看我的代码,并让我知道如果是这样的话。Java背景使用Jpanel将Jpanel排列在网格中的图像
这里是我的同班同学设置背景:
public class bwMonBackground extends JFrame {
Image img;
public bwMonBackground() {
try {
img = ImageIO.read(new File("/Users/pwopperer/workspace/BWmon/src/customer_vlans.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
super.paintComponents(g);
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
}
这里是我的主:
public class bwMonBackgroundMain {
public static void main(String[] args)
{
bwMonBackground frame = new bwMonBackground();
frame.setLayout(new FlowLayout(FlowLayout.LEFT,10,20));
migLayout testing = new migLayout();
frame.add(testing.createLayout());
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
}
}
编辑:当我运行它这个样子,我只得到一个JPanel与6周的JLabel我加入它
Thankyou,我叫super.paintComponents并将更新我的代码。是否有教程或例子可以推荐演示您推荐的ImageObserver的用法? – 2012-08-08 01:58:15
真的,你不需要担心它对你所做的事情太多了,它是由'Component'实现的,因此代表'JFrame'实现;) – MadProgrammer 2012-08-08 02:00:24
@Pat如果你真的非常渴望看到'ImageObserver'在行动中,你可以看看http://www.daniweb.com/software-development/java/threads/177666/imageobserver-and-animated-gifs# – MadProgrammer 2012-08-08 02:05:57