java 鼠标悬停事件_java – 用鼠标悬停触发JXCollapsiblePane

在SwingX的例子中,JXCollapsiblePane与按钮一起使用,但我想用鼠标事件转置它.

在我的示例中,JXCollapsiblePane在开始时关闭.只有当用户在按钮上附带鼠标才能打开JXCollapsiblePane.当鼠标离开该区域时,假设JXCollapsiblePane再次崩溃.

我的问题:当鼠标通过按钮离开区域时,JXCollapsiblePane没有折叠.

public class CollapsiblePaneDemo

{

/**

* @param args

*/

public static void main( String[] args )

{

final JXCollapsiblePane cp =

new JXCollapsiblePane( JXCollapsiblePane.Direction.RIGHT );

// JXCollapsiblePane can be used like any other container

cp.setLayout( new BorderLayout() );

// the Controls panel with a textfield to filter the tree

JPanel controls = new JPanel( new FlowLayout( FlowLayout.LEFT,4,0 ) );

controls.add( new JLabel( "Search:" ) );

controls.add( new JTextField( 10 ) );

controls.add( new JButton( "Refresh" ) );

controls.setBorder( new TitledBorder( "Filters" ) );

cp.add( "Center",controls );

JXFrame frame = new JXFrame();

frame.setLayout( new BorderLayout() );

// Then the tree - we assume the Controls would somehow filter the tree

JScrollPane scroll = new JScrollPane( new JTree() );

// Put the "Controls" first

frame.add( "Center",scroll );

// Show/hide the "Controls"

final JButton toggle = new JButton( cp.getActionMap()

.get( JXCollapsiblePane.TOGGLE_ACTION ) );

toggle.setText( "-" );

toggle.setPreferredSize( new Dimension( 20,toggle.getSize().height ) );

toggle.addMouseListener( new MouseAdapter()

{

@Override

public void mouseEntered( MouseEvent e )

{

if ( cp.getSize().width == 0 )

{

toggle.doClick();

}

}

} );

final JPanel panel = new JPanel();

panel.setLayout( new BorderLayout() );

panel.add( "Center",toggle );

panel.add( "East",cp );

panel.addMouseListener( new MouseAdapter()

{

@Override

public void mouseExited( MouseEvent e )

{

if ( !panel.contains( e.getPoint() ) )

{

toggle.doClick();

}

}

} );

frame.add( "East",panel );

frame.setDefaultCloSEOperation( JFrame.EXIT_ON_CLOSE );

frame.pack();

cp.setCollapsed( true );

frame.setVisible( true );

}

}

谢谢,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值