如何仅在工具栏上拖动Java 7 OSX App

时间:2013-10-31 16:09:13

标签: java macos swing java-7

默认情况下,如果您在窗口顶部附近点击(例如在Windows上),Java 7应用程序只能在Mac上移动,但是如果我设置

toolbar.getRootPane().putClientProperty("apple.awt.draggableWindowBackground") 

然后我可以通过拖动工具栏来移动窗口。不幸的是因为这个属性应用于rootpane,然后只是框架的一个根窗格,整个应用程序是窗口移动的一部分,我拖动它,我只希望能够在工具栏中拖动它。

我的应用程序的主要部分是JTable,当我在这里拖动时我真的不希望移动窗口,因为它会导致很多问题,例如我现在不能再通过拖动表头来按表列重新排序因为这只会移动整个窗口。我怎样才能限制移动。

  1. 仅限JToolbar
  2. 除Jtable外的所有地方
  3. 以最简单的方式。

1 个答案:

答案 0 :(得分:0)

找到一个解决方案,我使用了来自MacWidgets项目的Java 6中的UnifiedToolbar。由于转移到Java 7而不再使用UnifiedToolbar,我看不到解决方案,但只是使用WindowsDragger类钻研代码完美无缺井

new WindowsDragger(frame, toolbar);
new WindowsDragger(frame, statusbar)

相比之下,“apple.awt.draggableWindowBackground”选项只有在整个帧可以拖动时才会非常有用。