小编Heh*_*eas的帖子

如何将包含JPanel的JScrollPane视口滚动到特定位置

我正在尝试创建一个大型游戏板,只有部分游戏板在视口中可见,并且希望能够使用箭头键移动视口以查看整个板.现在我有一个JScrollPane包含一个JPanel,它将包含图像和文本以及其他内容,但这些都是无关紧要的.现在我有一个与JPanel相同大小的ImageIcon作为背景,我希望有一个选项,可以通过使用键移动视口,而不是有任何可见的滚动条.我试过在JPanel和JScrollPane上调用getViewPort().setViewPosition(),然后调用revalidate().但它仍然无效.我的代码如下

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import java.awt.*;
import java.awt.event.*;


public class Game extends JPanel {

    JPanel game = new JPanel();
    JScrollPane scrollPane = new JScrollPane(game);
    JLabel grass = new JLabel();

    private KeyListener keys = new KeyListener() {
        public void keyTyped(KeyEvent e) {

        }
        public void keyReleased(KeyEvent e) {
            if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                System.out.println("Down");
                scrollPane.getViewport()

            } else if (e.getKeyCode() == KeyEvent.VK_UP) {
                System.out.println("up");
            }
            revalidate();
        }
        public void keyPressed(KeyEvent e) {

        }
    };

public void createGame(int …
Run Code Online (Sandbox Code Playgroud)

java swing viewport jpanel jscrollpane

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jpanel ×1

jscrollpane ×1

swing ×1

viewport ×1