Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JScrollPane无法设置垂直位置_Java_Scrollbar - Fatal编程技术网

Java JScrollPane无法设置垂直位置

Java JScrollPane无法设置垂直位置,java,scrollbar,Java,Scrollbar,我试图垂直设置JScroll窗格的位置,但它似乎在某个点被封顶。在水平方向上,它工作得很好 JPanel panel = new JPanel(null); panel.setBorder(BorderFactory.createLineBorder(Color.red)); panel.setPreferredSize(new Dimension(800, 800)); JLabel l = new JLabel("test1"); l.setBound

我试图垂直设置JScroll窗格的位置,但它似乎在某个点被封顶。在水平方向上,它工作得很好

    JPanel panel = new JPanel(null);
    panel.setBorder(BorderFactory.createLineBorder(Color.red));
    panel.setPreferredSize(new Dimension(800, 800));
    JLabel l = new JLabel("test1");
    l.setBounds(40,40,100,100); panel.add(l);
    JLabel l2 = new JLabel("test2");
    l2.setBounds(440,440,100,100);panel.add(l2);


    JScrollPane scroll = new JScrollPane(panel);

    scroll.getVerticalScrollBar().setValue(500);
    scroll.getHorizontalScrollBar().setValue(500);


    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    add(scroll, BorderLayout.CENTER);
    setSize(300, 300);
    setVisible(true);
图片:

我可以将垂直数字设置为我想要的任何数字。它不会超出这个位置

希望有人能帮助我。已经是了。

试试这个:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Point;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class VerticalScrollPane {

    public static void main(String[] args) {        
        JPanel panel = new JPanel(null);
        panel.setBorder(BorderFactory.createLineBorder(Color.red));
        panel.setPreferredSize(new Dimension(800, 800));
        panel.setVisible(true);

        JLabel l = new JLabel("test1");
        l.setBounds(40,40,100,100); panel.add(l);
        JLabel l2 = new JLabel("test2");
        l2.setBounds(440,440,100,100);panel.add(l2);

        JScrollPane scroll = new JScrollPane(panel);        
        scroll.getViewport().setViewPosition(new Point(500,350)); //  Use this

        JFrame frame = new JFrame();
        frame.getContentPane().add(scroll);
        frame.setVisible(true); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(scroll, BorderLayout.CENTER);
        frame.setSize(300, 300);
        frame.setVisible(true);
    }
}
结果:

可能存在的副本