因此,我一直在處理我的程序,並且無法使用網絡地圖的背景圖像設置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