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