1

ここにあるスタイルに似た検索結果ポップアップリストを実装しようとしています。

http://www.inquisitorx.com/

(私はグーグル検索を実装しようとはしていません、私はこれを私が取り組んでいるスタイルの大まかな例として使用しています。)

いずれにせよ、私はこれを、aの下にポップアップ表示さJListれるa内に含まれるものを使用して実装しています。JPopupMenuJTextField

ユーザーが検索語を入力すると、一致するさまざまな結果を反映してリストが変更されます。次に、を呼び出しpackJPopupMenuサイズを変更します。これは機能しますが、実際にはポップアップを非表示にしてポップアップを表示しているため、わずかなちらつき効果が生じます。(明示的にこれを行うプライベートメソッドgetPopupを参照してください。)JPopupMenu

(を使用する以外に)自分自身のサイズを変更するだけの方法はありますJWindowか?

4

3 に答える 3

2

私に仕事:

popup.pack();

popup.validate();

これは、Javaバージョン「1.6.0_34」のLinuxで動作します。それがWindowsで機能するかどうかはわかりません。

于 2013-12-21T13:47:04.370 に答える
1

私の場合、setSize()メソッドは機能しませんでした。popup.pack()アプローチは機能しましたが、ちらつきも発生しました。私が見つけた最良の解決策は、ここで見つけたものでした。要するに:

    Window window = SwingUtilities.getWindowAncestor(popupMenu);
    window.pack();
    window.validate();
于 2015-04-29T17:15:45.183 に答える
0

試しましたsetSize()か?それが処理されJComponent、再描画の問題を回避できるようです。

対処している問題getPopupは、ポップアップのサイズがウィンドウ内に収まらない場合の対処方法だと思います。それが起こると、それは軽量コンポーネントから重量級に戻り、それは間違いなく非表示と表示を必要とします。したがって、ポップアップがウィンドウを超えないことを保証できれば、setSizeでうまくいくと思います。

于 2010-05-27T20:45:50.857 に答える