2012-02-27 56 views
1

目前我有一個漂亮的JViewport設置Jlabel並用作視圖。我想知道是否可以使用分層Jlabels作爲視口的視圖。 IE:我想將新的JLabel添加到預先存在的視口中。JViewport中的多個視圖?

謝謝!

編輯:在StanislavL的建議,我現在在JScrollPane中使用JLayeredPane。目前JLayeredPane中有兩個JLabel,當我滾動JScrollPane時,較大的背景圖像正確滾動,較小的shipSprite保持在相同的位置。任何想法如何讓他們一起滾動?

public void initViewport() { 
    explorePort = new JScrollPane(); 
    explorePort.setBounds(0, 0, retailWidth, retailHeight); 
    explorePort.setBackground(new Color(0, 100, 0)); 
    explorePort.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    explorePort.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

    ImageIcon background = Main.global.imgScaler.scaleImage(new ImageIcon("images/blankgrid.jpg"), retailWidth*2, retailHeight*2); 
    JLabel backSplash = new JLabel(background); 
    backSplash.setBounds(0, 0, retailWidth*2, retailHeight*2); 

    ImageIcon shipIcon = Main.global.imgScaler.scaleImage(new ImageIcon("images/ship.png"), Main.global.nodeWidth, Main.global.nodeHeight); 
    JLabel shipSprite = new JLabel(shipIcon); 
    shipSprite.setBounds(100, 100, Main.global.nodeWidth, Main.global.nodeHeight); 

    Main.global.gamePanel.add(backSplash, 0); 

    explorePort.setViewportView(backSplash); 
    Main.global.gamePanel.add(shipSprite, 1); 
    Main.global.gamePanel.add(explorePort, 2); 

    //explorePort.addMouseListener(this); 
    Main.global.gameFrame.addKeyListener(new ListenKey()); 
} 
+1

多個標貼放入容器內,並放置在容器更好地幫助越早,請編輯與您的文章[SSCCE(http://sscce.org/) ,否則你必須接受JLayeredPane或JLayer ....(@stas)+1 – mKorbel 2012-02-27 11:12:00

回答