問題タブ [jpopupmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3560 参照

java - Java ポップアップ ボタン

注:私の質問を完全に理解するには、私の例をコンパイルして実行する必要がある場合があります。これがコーシャでない場合は、事前にお詫び申し上げます。

JToggleButtonおよび に基づく Swing コントロールを作成しようとしていますJPopupMenu

ポップアップ メニューが表示されている場合はトグル ボタンが選択され、ポップアップ メニューが表示されていない場合はトグル ボタンの選択が解除されます。JComboBoxしたがって、ポップアップに任意のコンポーネントを含めることができる点を除いて、動作は に似ています。

次のコードは、コントロールを作成する方法の例です (独自のクラスにあることを除いて... a のようなものですJPopupToggleButton)。残念ながら、異なるルック アンド フィールでは異なる動作を示します (Metal と Nimbus でテストしました)。

ここに投稿されたコードは、Metal では期待どおりに動作しますが、Nimbus では動作しません。Nimbus を使用する場合は、トグル ボタンを繰り返しクリックしてポップアップを表示および非表示にするだけで、意味がわかります。

次の行をコメントアウトすると、コードは Nimbus では期待どおりに動作しますが、Metal では動作しません。繰り返しますが、トグル ボタンをクリックし続けると、私の言いたいことがわかります。

だからここに私の2つの質問があります:

(1) Nimbus で、ポップアップ パネルを非表示にするクリックが、Metal のようにトグル ボタンに渡されないのはなぜですか?

(2) この問題を解決して、すべてのルック アンド フィールで機能するようにするにはどうすればよいですか?

0 投票する
1 に答える
367 参照

java - マウスクリックでのみ popupMenu を開く Swing

JPopupMenu に関連する質問があり、誰かが私を助けてくれるかもしれません。

私が見る限り、JPopupMenu は、JMenu を押すと (これは JMenuBar にありますか)、または JMenu にカーソルを合わせると (JPopupMenu にある場合) 開きます。

したがって、JMenu を含む JMenuBar があります (「ファイル」と呼びましょう)。「ファイル」を押すと、JMenuItem と別の JMenu (「プロパティ」と呼びましょう) を含む JPopupMenu が開きます。ファイル JMenu にあるのと同じ動作をプロパティ JMenu に適用する方法はありますか?

これが JMenu の通常の動作を回避しようとしていることは知っていますが、これが可能かどうか考えている人はいますか?

0 投票する
3 に答える
2333 参照

java - Java rowAtPoint() が適切な値を返さない

私はJavaプロジェクトを作成しており、JTable. 私がやりたいことは、 を にリンクするpopupmenuことjtableです。にpopupmenuは 4 つの異なる がありitemsます。で選択したitems、知っておく必要のあるものの一部。問題は関数にあります。適切な を返す関数を取得できません。をクリックすると、クリックしたのと同じ列にポップされます。しかし、または-functions (ラベル「addSelected」または「deleteSelected」の menuItem 内) を使用し、(s) が選択されていない場合は、-functions を使用して でクリックしているを見つけます。のようだrowjtableselectRowrowjtableright mouse buttonpopupmenuaddSelectedRowremoveSelectedRowrowselectRowrowright mousebuttonrowAtPoint(Point p)正しい行を見つけるだけではありません。0 または -1 を返します。私はこの問題にほぼ1週間苦労しているので、コードをポン引きしてください:D コードが十分にきれいであることを願っています:D

<--編集済み--> http://painkiller.comlu.com/images/1.jpg

これが問題のスクリーンショットです。 JTable常に少なくとも 1 つの行があります。任意の行をクリックします (この状況では 2 番目row)。Row目的で選ばない。「Lisäävalittu」を押すと、「Add selected」を意味し、関数selectRow()が呼び出されます。

/ * *場所

最初に試したe.getPoint() *e.getPoints() -> java.awt.Point[x=4,y=8] からの行インデックス番号が返されましたrowAtPoint(): 0

それから私は試しましたSwingUtilities.convertPoint() * SwingUtilities.convertPoint(tablePopMenu, e.getPoint(), jTbl);- >java.awt.Point[x=28,y=10] 返された行インデックス番号からrowAtPoint():2

動作しているように見えますが、関数が -1 または 0 をスローすることがあります (そのバグを確認する必要があります)。

<-- -->

私の一日を救ってくれてありがとう!

0 投票する
7 に答える
12293 参照

java - JPopupMenuに垂直スクロールを追加しますか?

JPopupMenuの項目のリストをスクロールするのと同じように、のメニュー項目をスクロールする方法を追加したいと思いますJComboBox

10個のメニュー項目があるとしましょう。一度に5つのメニュー項目のみを表示したいのですが、の下部または上部にある垂直スクロールボタンを使用して、JPopupMenuリストされていないメニュー項目を表示し、今見たものを非表示にします。

出来ますか?JideSplitButtonクリックするとを表示するJIDESoftwareを使用していJPopupMenuます。を配置したコマンドバーのルックアンドフィールを維持しようとしているので、本当に必要JideSplitButtonな場合を除いて、コマンドバーをに置き換えたくありません。JComboBox

0 投票する
2 に答える
819 参照

java - ポップアップ項目から jTable の行番号を取得する

添付の写真のようにjTableがありますここに画像の説明を入力

行を右クリックすると、jPopup が開始され、単一の項目「スレッド停止」が表示されます。

このメニュー項目をクリックして行番号を返したい

これを達成する方法は?

ありがとう。

0 投票する
1 に答える
283 参照

java - カスタムツリーからJPopupMenuを作成する方法

以下のメソッドは、文字列からカスタムデータツリーを作成します。

多くのサブメニューを持つポップアップメニューを生成するメソッドに取り組んでいます。基本的にこれらのメニューは動的に与えられるので、以下の文字列を使用してサブメニューの作成を処理するアルゴリズムがあります。それを行うために、区切り文字を使用して分割することにより、この文字列をJavaカスタムツリーに変換します。

解析する動的文字列値の例:

String str = "Menu1; Menu2 [; Menu2A; Menu2B [; Menu2B-A; Menu2B-B]]; Menu3;";

現在のメソッドは、以下の構造のようなツリーを作成します。

このツリーに基づいてサブメニューを使用してJPopUpMenuを作成する方法に固執しています。再帰的な方法を使用することを考えていますが、どちらに進むべきかわかりません。

0 投票する
2 に答える
1145 参照

java - キャンバスの下のJPopupMenu表示

キャンバス、いくつかのテキストフィールド、コンテキストメニューがあります。

アプリケーションを起動してキャンバスを右クリックすると、ポップアップメニューが表示されます。しかし、キャンバスを右クリックするよりもテキストフィールド内に何かを書き込むと、ポップアップがキャンバスの後ろに表示されます。

それを修正する方法はありますか?

0 投票する
3 に答える
2842 参照

java - フォーカスを盗むJPopupMenuを停止する

JTextFieldユーザーの入力に一致する結果を提案したいと思っているのです。これらの提案をにJList含まれるものに表示していますJPopupMenu

ただし、を介してプログラムでポップアップメニューを開くshow(Component invoker, int x, int y)と、フォーカスはから取得されJTextFieldます。

不思議なことに、setVisible(true)代わりに電話しても、フォーカスは盗まれません。ただし、JPopupMenuはどのパネルにも接続されておらず、ボックスが開いているときにアプリケーションを最小化すると、ウィンドウにペイントされたままになります。

JTextFieldまた、フォーカスをusingにリセットしようとしましたrequestFocus()が、を使用してキャレットの位置を復元する必要があります。後で呼び出すSwingUtilities.invokeLater()と、ユーザーは既存のコンテンツをいじくり回す/上書きする/または他の予測できないことをします。

私が持っているコードは事実上次のとおりです。

JPopupMenu誰かが、焦点を合わせながら、プログラムで表示するために降りるのに最適な方法を提案できますJTextFieldか?

0 投票する
2 に答える
9495 参照

java - JTreeノードスイングでの右クリックでポップアップボックスを表示

コンポーネントJTree全体ではなく、ノードのみを右クリックしてポップアップボックスを表示したい。JTreeユーザーが JTree ノードを右クリックすると、ポップアップ ボックスが表示されます。彼が空白スペースを右クリックしてもJTree、それは表示されません。JTreeそのために、ノードのみのマウスイベントを検出するにはどうすればよいですか。ネットで何度も検索しましたが、解決策が見つからなかったので、助けてください。

ありがとう。

0 投票する
0 に答える
340 参照

macos - GUIの外側をクリックしても、JPopUpMenuが非表示/閉じることはありません

Mac OSXにSwingGUIがあり、 JTableがあります。JTableをクリックすると、さまざまなオプションを持つJPopupMenuが表示されます。

問題は、右クリックしてJPopupMenuが表示されることです。突然、GUIの外側をクリックすると、JPopupMenuが開いたままになり、他のウィンドウと重なって、MacbookがログアウトしてもJPopupMenuが開いたままになります。

JPopupMenuの外側をクリックしたときに、openedPopupsをすべて閉じるにはどうすればよいですか。