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 JScrollBar中的页面向上/向下事件_Java_Swing_Jscrollpane_Keyevent_Jscrollbar - Fatal编程技术网

Java JScrollBar中的页面向上/向下事件

Java JScrollBar中的页面向上/向下事件,java,swing,jscrollpane,keyevent,jscrollbar,Java,Swing,Jscrollpane,Keyevent,Jscrollbar,我在JFrame内的JPanel内的JPanel内的JScrollPane内的JEditorPane中显示一个html文件。如何添加侦听器来检测“向下翻页”和“向上翻页”事件 这是我的密码: public class Test_Url extends JPanel { JEditorPane editor; JScrollPane scroller; String source = "test.html"; Test_Url(){ super(

我在JFrame内的JPanel内的JPanel内的JScrollPane内的JEditorPane中显示一个html文件。如何添加侦听器来检测“向下翻页”和“向上翻页”事件

这是我的密码:

public class Test_Url extends JPanel {

    JEditorPane editor;
    JScrollPane scroller;
    String source = "test.html";

    Test_Url(){
        super();
        setLayout(new BorderLayout());
        editor = new JEditorPane();
        editor.setEditable(false);
        File file = new File(source);
        String page = "file:///" + file.getAbsolutePath();
        try {
            editor.setPage(page);
        } catch (IOException ex) {
            Logger.getLogger(Test_Url.class.getName()).log(Level.SEVERE, null, ex);
        }

        scroller = new JScrollPane(editor, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        scroller.setPreferredSize(new Dimension(500, 600));  
        add(scroller, BorderLayout.CENTER);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new Test_Url());
        frame.pack();
        frame.setVisible(true);
    }
}

谢谢大家!

您可以在滚动窗格的
JScrollBar
中添加
AdjustmentListener


我认为它不会告诉您它是向上还是向下滚动的,因此您需要跟踪最后一个值并与当前值进行比较。

AdjustmentEvent参数有一个int类型字段,其中一个字段是
BLOCK\u INCREMENT
,因此它很可能会告诉您。1+@hovercraftfullofels,很好。我应该仔细看看API:)谢谢你们。不幸的是,
AdjustmentEvent
类型始终显示为
TRACK
,而不管用户的操作。无论如何,我可以通过垂直滚动条位置的变化来检测动作。向上/向下翻页仅生成一个事件。