gpt4 book ai didi

java - JViewport 中的多个 View ?

转载 作者:行者123 更新时间:2023-11-29 06:02:58 26 4
gpt4 key购买 nike

目前我有一个漂亮的 JViewport,其中设置了一个 Jlabel 并将其用作 View 。我想知道是否可以使用分层 Jlabels 作为视口(viewport)的 View 。 IE:我想将新的 JLabel 添加到预先存在的视口(viewport)中。

谢谢!

编辑:根据 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());
}

最佳答案

使用分层 Pane 为容器添加多个标签并将容器放置在JScrollPane中http://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html

关于java - JViewport 中的多个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com