問題タブ [jtabbedpane]

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 投票する
4 に答える
9435 参照

java - JTabbedPane で幅が等しい (一定の) タブ

JTabbedPaneすべてのタブ (コンポーネントではなく実際のタブ) が同じ幅 (最も幅の広いラベルに必要な最小幅または一定の幅)の場所を取得しようとしています。

をオーバーライドしようとしましたがBasicTabbedPaneUI.getTabBounds(int tabIndex, Rectangle dest)、明らかにこのメソッドは の描画メソッドでは使用されずBasicTabbedPaneUI、代わりに rects 配列を使用してタブのサイズを決定します。

私の次のアプローチはJTabbedPane.insertTab(String title, Icon icon, Component component, String tip, int index)、ラベル コンポーネントの優先サイズをオーバーライドして設定することですが、これはあまりエレガントではないようで、まったく機能するかどうかさえわかりません。

これを達成する方法はありますか?

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

java - JTabbedPane: タブ自体の前後のコンポーネント

これは、Java Swing で Google クローム タブとメニューバー インターフェイスを構築する方法は? という質問に似ています。(私は同じことを達成したい)、しかしもっと要点: JTabbedPane のタブの前後にコンポーネントを配置するにはどうすればよいですか?

私はすでにボタンのアイデアを自分で思いつきましたが、JTabbedPane の方がいいと思います。JTabbedPane が実際にそれであり、側面にボタンまたはアイコンで装飾されているからです。

Kirill のlaf-widgetプロジェクトが、いくつかの LaF に対して同様のことを行っているのを見てきました (タブの左側にある虫眼鏡アイコン)。しかし、私はまだ彼がどのようにそれを行うのかを理解するのに十分なほど精通していないことを認めなければなりません-また、問題のLaFを「物理的に」変更し(バイトコードが操作します)、lafを注入するという、やや複雑なプロセスのように思えます-ウィジェットをUIデリゲートに追加します-JTabbedPaneまたはTabbedPaneUIが実際にそのアイコン/ボタンを挿入するためにどのように調整されるかはまだわかりません。

0 投票する
5 に答える
24401 参照

java - Java JTabbedPane、ボタンからタブを選択するにはどうすればよいですか?

ボタンをクリックしてクリックしたかのようにタブを選択するにはどうすればよいですか? 私はググってすべてのアクションを見ましたが、非常に多くあります... :(

誰でも知っていますか?

前もって感謝します!

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

java - タブが 1 つしか存在しない場合、JTabbedPane のタブ バーを非表示にする方法はありますか?

たとえば、使用可能なタブのリストが少なくとも 2 つのタブが存在する場合にのみ表示される Firefox と同様の動作が必要です。

私はまだそのようなものを見つけることができませんでした。

私が持っていた最良のアイデアは、レイアウトを手動で変更することでした:

  • 1 つのコンポーネントの場合は、それを周囲のパネルに追加するだけです
  • コンポーネントが追加された場合は、そのコンポーネントを周囲のパネルから削除し、代わりに JTabbedPane を追加して、以前のコンポーネントと新しいコンポーネントの両方をそのペインに追加します。
  • コンポーネントが削除され、ペインにコンポーネントが 1 つしか残っていない場合は、ペインを削除し、代わりに含まれているコンポーネントを追加します。

これはおそらく機能しますが、ハックまたは回避策のように感じます...

もっと良いアイデアはありますか?

ソリューションは、理想的には Java 1.5 と 1.6 の両方で機能するはずですが、1.6 のみのソリューションについても満足しています。

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

google-chrome - JTabbedPane:タブを含まないタブ選択UIの部分にマウスリスナーをアタッチします

これは、ここで提起された質問と関連しています 。JTabbedPane:タブ自体の前後のコンポーネント

構築されたグーグルクロームのようなフレームをドラッグできるマウスリスナーを取り付けたいと思います。最初は、最初のドラッグコードはかなり簡単で、このキリルポストのマウスドラッグコードはほとんど直接使用できます。この動作が必要なのは、ユーザーがフレームの「タイトルバー」、つまりタブ(スティックアッパー)が存在する領域をクリックしてドラッグした場合のみです。これも簡単です。ドラッグコードを変更して、タブを含む部分であるJTabbedPaneの上部領域でのクリックのみを受け入れるようにします。

ただし、取得可能な領域をさらに減らし、タブで占められていない領域でのみクリックアンドドラッグフレームを許可したいと思います(スティックアッパー-このGUI要素のより良い名前は誰ですか?)-これも非常に似ていますGoogle Chrome(Chromeは、ウィンドウモードのときにタブの上にバーを追加して、多くのタブがアクティブになっている場合にフレームを簡単に保持できるようにします。ただし、Chromeはこれを完璧に実行します。タブがあり、タブの間の小さなvでも!)

私が効果的にやりたいのは、タブのGUIの背景にマウスリスナーを接続できるようにすることですが、このようなことを実現するにはどうすればよいでしょうか。

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

java - nullを返すJTabbedPane.getTabComponentAt(int)

私は次のコードを持っています:

事は:

を返しますnull。他の奇妙なことは:

を返します0。私が起こるべきだと思う論理的なことは、作成されたウィンドウへの参照を持つことです。なぜ私は受け取っているのnullですか?私は何が間違っているのですか?

0 投票する
5 に答える
4596 参照

java - JTabbedPane.removeAll() を呼び出した後、JTabbedPane にはまだ x 個のタブがありますか?

私のJTabbedPaneでは、2 つの異なる方法でタブを削除しています。

タブを閉じるという点では、どちらも正常に機能します。TabbedPaneただし、タブの変更を報告するために別のモジュールにコールバックする変更リスナーがあります。ここが問題です。

を使用してタブを追加および削除する場合remove(index)、メソッドのソース TabbedPane には、stateChanged()チェック時に正しい数のタブが含まれますtabbedPane.getTabCount()

tabbedPane.getTabCount()ただし、 の後に呼び出すtabbedPane.removeAll()と、カウントは の直前にあったカウントのままremoveAll()です。

誰か提案はありますか?

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

java - JTabbedPane: 選択したタブを表示する前に実行されるアクション

にあるパネルの 1 つJTabbedPaneがクリックされると、最初にいくつかのアクションを実行する必要があります。たとえば、ユーザー名とパスワードを確認する必要があるとします。それらが一致する場合にのみ、特定のパネル操作を実行する必要があります。何か方法を提案できますか?

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

java - JSplitPanel (または JTabbedPane) の何が問題になっていますか?

ユーザーに表示したい2つのパネルがあります。それらを JTabbedPane に追加することにしました。また、ユーザーが両方を同時に並べて表示できるようにしたいと考えています。そこで、2 つのパネルを JTabbedPane に追加してから、JSplitPanel を作成しました。

結果の JTabbedPane にはタブが 1 つしかありません。JSplitPane を削除すると、すべて正常に動作します。2 つのタブ。次に、ここに投稿するために問題を単純化しようとしましたが、これを思いつきました:

これは私に別の問題を与えました!3 つのタブが表示されますが、3 番目のタブの分割ペインにはボタンが表示されません!

だから私の質問はJSplitPanelの何が問題なのですか? 別のタブに既に表示されているオブジェクトを表示することはできませんか? 意味がない。私を助けてください。

(注:表示しようとしているコンポーネントを同じ参照にしたいので、それらを複製したくありません)

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

java - JTabbedPane でタブを前面に移動する

setSelectedComponentオブジェクトでまたはsetSelectedIndexを使用するJTabbedPaneと、パネルが常に UI に表示されます。ただし、パネルに関連付けられたタブが非表示のままになることがあります。つまり、タブは、タブ付きペインの可視部分までスクロールしません。

どうすればこれを修正できますか? 私は安っぽい1つのインデックスを選択してから、目的のインデックスを選択し、他のいくつかのよりエレガントなものを試しましたが、ああああ!!

できれば助けてください。

ありがとう、トッド