JSplitPane调整光标大小

时间:2012-11-08 16:23:12

标签: java swing jsplitpane

我似乎无法通过调用setCursor(new Cursor(Cursor.DEFAULT_CURSOR));更改JSplitPane的调整大小光标有没有人知道怎么解决这个问题?我正在使用Nimbus UI。

2 个答案:

答案 0 :(得分:1)

setCursor组件上调用JSplitPane会将光标仅设为以用于左侧&右(或顶部和底部)组件。

要设置分隔符组件的光标,可以使用:

Component divider = ((BasicSplitPaneUI)splitPane.getUI()).getDivider();
divider.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

答案 1 :(得分:0)

我们可以在JSplitPane的addPropertyChangeListener()侦听器中添加鼠标侦听器的代码,并且在加载GUI之后,我们可以触发此事件以将鼠标侦听器绑定到分隔符。这是我的代码:

splitPanehor.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, (pce) -> {
        Component divider1 = ((JSplitPane) pce.getSource()).getComponent(2);
        divider1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                ExomDataGUI.f.setCursor(new Cursor(Cursor.W_RESIZE_CURSOR));
            }

            @Override
            public void mouseExited(MouseEvent e) {
                ExomDataGUI.f.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
            }
        });
    });

我们可以按照以下方式显示GUI后触发此事件:

splitPanehor.firePropertyChange(JSplitPane.DIVIDER_LOCATION_PROPERTY, 219, 220);