-1

JFrameでpack()メソッドを呼び出すたびに、開始時の初期位置に移動します。JFrameの場所(getLocation、getLocationOnScreen)を取得しようとすると、ウィンドウを移動しても初期位置と同じになります。私はAwesomeWMでArchlinuxを実行しています。助けてください。

ありがとうUiii

編集:私が欲しいのは、ウィンドウを初期位置に移動せずに、メインウィンドウの一部のコンポーネントを表示または非表示にできるようにすることです(これにより、レイアウトのサイズが変更されます)。

EDIT2 :それで、Paŭlo(コメントから)が正しいことがわかりました。Xfceでは正常に動作しますが、AwesomeWMでは動作しません。

EDIT3:なぜあなたが質問に投票するのか私は本当に理解していません。pack()関数を使用するのは初めてなので、その正しい動作がわかりません。ウィンドウの位置が変更されるかどうかについては、JavaAPIドキュメントに説明がありません。私はこれをウィンドウマネージャーとして使用しているAwesomeWMで最初に使用しているので、別の方法で動作する必要があるかどうかはわかりません。私はインターネットでそれについて何かを見つけようとしましたが、何も見つかりませんでした。私が解決策を見つけた後、この質問は誰かに役立つと思います。確かに、Awesome WM(または同じ問題に似たもの)を使用している別のJava開発者がいます。

4

1 に答える 1

2

私は解決策を見つけました!問題は、Javaがいくつかのウィンドウマネージャーでいくつかの問題を抱えていることです。解決策は簡単です-wmnameユーティリティ(http://tools.suckless.org/wmname)をインストールして' wmname LG3D'を実行するだけです。実際のウィンドウマネージャーの名前をLG3Dに変更し、Javaはそれを互換性のあるWMと見なします。

私は問題の前にこれを知っています。そのため、.xinitrcファイルでLG3D名をグローバルに設定しようとしていますが、機能していないようです。wmname LG3D一部のJavaアプリを実行するすべての端末で明示的に''を呼び出す必要があります。

于 2011-05-22T13:11:18.520 に答える