2011-08-16 7 views
6

OS Xは「自然なスクロール」をサポートしているので、私のアプリケーションはうまく機能しません。自然なスクロールは、私が本当に好きなスクロールペインに対して行われます。しかし、私がズームイン/アウトしたいとき、それは間違って動作します。だから私がしたいのは、OS Xのスクロール方法をチェックすることです。
"自然"の場合は、スクロール値の逆をMouseWheelEvent.getWheelRotation()から取って、ズームイン/アウトの動作が正しいようにします。Java:OS X Lionでスクロール方法を取得するには?

OS Xが自然スクロールを使用しているかどうかを知る方法を教えてください。

+0

:あなたは簡単にこのように有効になっているスクロールの種類を見つけるために(スクロールオプションを変更するときに変更されたファイルfseventerで確認)GlobalPreferneces.plistで読むことができるよりも

'ScrollableUnitXxx'と' ScrollableTracksXxx'の違いは、他のネイティブOSと比較してどのように異なるのですか – mKorbel

+1

OS Xは「自然なスクロール」を設定しています。それを有効にしてスクロールすると、コンテンツがあなたの指に従います。有効にしないと、スクロールバーが指に沿って移動し、コンテンツが他の方向に移動します。 –

答えて

3

解決策が見つかりました。

まず、.plistファイルを読むためのライブラリが必要です。私はthis oneを使用しました。あなたは明確にすることができますしてください

try { 
    File globalPref = new File(System.getProperty("user.home") + "/Library/Preferences/.GlobalPreferences.plist"); 
    NSDictionary dict = (NSDictionary)PropertyListParser.parse(globalPref); 

    NSNumber pref = (NSNumber)dict.objectForKey("com.apple.swipescrolldirection"); 

    if(pref.boolValue()) { 
     //natural scrolling is enabled 
    } 
} catch (Exception ex) { 
    System.out.println("Faild to parse plist: " + ex.getMessage()); 
} 
+0

それは本当にそれです。私はファイルを見つけて、設定を変更すると値が変化します。ありがとう! –

1

AppleがJavaを削除したので、自然なスクロールが有効になっているかどうかを検出する方法は組み込まれていないと思います。ただし、マウス/タッチパッドの動作(基本的なxmlファイル)を設定するための.plistファイルを読み込んで、自然スクロールを有効にするプロパティを検索すると、trueまたはfalseに設定されます。

あなたはここで必要なの.plistファイルを見つけることができます:

ユーザー/ライブラリ/ Preferences/<を - このフォルダはライオンに隠されています!

com.apple.driver.AppleBluetoothMultitouch.mouse.plist

com.apple.driver.AppleHIDMouse.plist

編集:あなたは標準でplistファイルを読み込むことができません

Mac OS 10.4のすべての.plistsはバイナリ形式で保存されているので、Java Framework。正しい解決方法については私の他の答えを見てください。

+0

フォルダが見つかりましたが、あなたが言及したファイルはそこにありません。 –

+0

それは非常に奇妙です。マウス設定を変更したことがありますか?また、ユーザーを自分のユーザー名で置き換える必要があります:) –

+0

はい、私は変更を加えました。 Appleが提供するGUIのみを使用します。ファイルは変更のために消えてはいけません。 –

1

java-devメーリングリストのMike Swinglerのanswerを見てください。それについての全体的な糸があります。

+0

トピックのおかげで、まだメーリングリストには答えがありません。 –

関連する問題