問題タブ [jtableheader]
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.
java - JTableのカスタマイズ
良い一日。
JLabelとJTextFieldのフォントサイズを必要に応じて変更できる場合、JTableの列名と要素のフォントスタイル(サイズ、面、色)も変更できますか?
さらに、Windowsのルックアンドフィールを使用しています。
ありがとう、
java - JTable 列ヘッダーを中央揃えするときのルック アンド フィールの問題
次のコードを使用しています。
JTable 列:
ルック アンド フィールが他の列ヘッダーと一致しなくなりました。
なんで?この問題を解決するにはどうすればよいですか?
編集
NetBeans はDefaultTableCellHeaderRenderer
どちらから来たものを使用しているようですpackage sun.swing.table;
私は太陽のパッケージを使うべきではないことをどこでも読みました。うーん...これは役に立ちません!
編集2
0verbose の提案により、以下が生成されます。
解決
オイゲナーの提案に従って、コードを次のように更新しました。
そして、私はこれを取得します:
ルック アンド フィールは保持され、列ヘッダーは中央に配置されます !!! (他の列ヘッダーも中央に配置されますが、int row, int column
パラメーターをさらにテストすることでこれを制御できます)。
java - Java でカスタム JTable を作成し、列名の上に行を配置する方法
AbstractTableModel
いつものように、列名に String[] 、行の内容に Object[][] を使用 して、単純なカスタム テーブルを作成するために使用しています。JTable's
しかし、追加の行 (の列名の前に、一般的なタイトルのすべての列にまたがる 1 つの大きなセル)。誰にもアイデアはありますか?
java - JTableヘッダーとスペーサー行
私はSwingを初めて使用し、今日はJTableコンポーネントに苦労しています。やや凝ったテーブルを作ろうとしているので、まだどこでも探している特定の答えを見つけることができませんでした。
テーブルの最上部にヘッダーの「グループ」を配置したいと思います。これは、テーブル全体にまたがる3行または4行を意味し、さまざまな列を「グループ化」して、基本的にそれらを分割します。
例(目の疲れを許してください):
スラッシュ( "/")は空白を示します。「ANIMALS」というタイトルの最初のヘッダーは、テーブル内のすべての列を参照します。2番目のヘッダーはANIMALSを分割し、以下同様に続きます。3番目の最後のヘッダーの後に、実際のテーブルが表示されます。各行には、動物のタイプごとに1つずつ、合計4つの列があります。
明らかにこれは例であり、おそらく悪い例ですが、これは私が「ヘッダーのパーティション化」によって意味するものです。
私の質問: JTableHeaderとTableColumnModelがこの機能をどのようにサポートしているかわかりません。もしそうなら、誰かが私を正しい方向に動かすことができますか?そうでなければ、Swingアプリがこのようなものを必要としたのはこれが初めてではありません。誰かが知っているサードパーティのコンポーネントはありますか?
また、行のグループを表す「スペーサー」またはスパニング行をテーブル全体に散らばらせることができるようにしたいと思います。これらのスペーサーは(ヘッダーのようにテーブルの上ではなく)テーブル内に存在しますが、すべての列にまたがり、後続の行で表されるグループの名前を表す単一のラベルを持ちます。繰り返しになりますが、Swingがこれをサポートしているとは思いません。何かアイデアはありますか?
ありがとう、そして私は本当にひどい例/図面をお詫びします。
java - JTable の JTableHeader にコントロールを配置するにはどうすればよいですか?
タイプJTable
の列を持つ が指定された場合Boolean.class
、デフォルトのレンダラーはJCheckBox
です。ユーザーの選択に基づいて個々のセルを選択するのは簡単ですが、すべてのチェック ボックスを選択するか、またはまったく選択しない方が便利な場合もあります。これらの最近の 例では、テーブル ヘッダーでの使用について言及さJCheckBox
れていますが、実装はぎこちなく魅力的ではありませんでした。列を並べ替える必要がない場合、行儀の良いコントロールをどのように配置できJTableHeader
ますか?
補遺: 便宜上、回答としてsscceを追加しましたが、問題の行儀の良い側面に対処する回答を喜んで受け入れます。
java - 列名を短縮するのではなく、列名全体を表示するJTableヘッダーを取得するにはどうすればよいですか?
AbstractTableModelを拡張するクラスで埋めるJTableがあります。問題は、列が短すぎて列名を表示できないことです。Jtable AutoResizeModeプロパティをオフにしましたが、それでも短縮が発生します。どうすればこれを解決できますか?
uitableview - UITableViewでの挿入/削除操作後にtableHeaderViewを非表示にします
私は UISearchBar が tableHeaderView 内にある UITableView を持っています。ユーザーが上 にスクロールするまでヘッダービューを非表示にしたいので、次のようにします。
私の問題は、挿入または削除を行った後 ( NSFetchedResultsControllerを使用)、 UITableView が 0,0 にスクロールし、テーブル ヘッダーが表示されることです。
挿入または削除操作が行われた後、スクロールをオフにしておく方法はありますか?
java - JTable の 1 列のヘッダーのサイズを正しく設定する
3 列のテーブルがあり、最初の列を必要最小限のサイズにしたいと考えています。ヘッダーは「レベル」で、使用するフォント/OS によっては 25 ~ 29 ピクセルのようです。ただし、テーブル ヘッダーを省略記号なしで表示するには、Windows では少なくとも 35、Mac では 52 が必要なようです。余分なスペースが必要な理由がわかりません (境界線がないなど)。
私は最終的に、以下がWindows(35)で必要なサイズを与えることを発見しましたが、Macでは十分ではない36を返します(ほとんどの場合、ソート矢印インジケータがテキストの上ではなく横にあるためです)...
table.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(null, table.getColumnModel().getColumn(0).getHeaderValue(), false, false, 0, 0).getPreferredSize().width
プラットフォームに依存しないこれを行う正しい方法は何ですか? または、上記の結果に 15 ピクセル程度を追加するなどのハードコードを行う必要がないように、Mac で必要な余分なスペースを計算する方法はありますか?
java - JTable Swingでタイトル列のフォントを大きくするには?
JTable Swing でタイトル列のフォント サイズを大きくする方法を教えてください。
私はNetbeansを使用しています。
よろしくお願いします。
ダニエル
java - Java:テーブルセルレンダラーをオーバーライドしますが、デフォルトの背景とプロパティを使用します
カスタムレンダラーを追加する場合は、通常、一部JComponent
(などJLabel
)を拡張して実装TableCellRenderer
するか、を拡張しDefaultTableCellRenderer
ます。ただし、どちらの場合でも、セルスタイルが完全に上書きされていることがわかります。
私が本当に望んでいるのは、デフォルトのL&F背景をペイントしてから、前景色やフォントなどの他のL&Fデフォルトを使用してその上にペイントできるようにすることです。
だから、これが私がやろうとしたことです。まず、クラス:
次に、セル(ヘッダー)レンダラーを次のようにオーバーライドします。
私は基本的にここでの提案に従っています: TableCellRenderer、パート2-カスタムレンダラーを作成する方法
を返すcomponent
と、何もオーバーライドしていないかのようにレンダリングされます。つまり、選択したL&Fの背景とスタイル、およびすべてでプログラムしたラベルのヘッダーを取得します。 しかし、もちろん、後で私のものをレンダリングする方法はありません。
一方、私が戻った場合this
、私はまったく何も得られません。MacネイティブのL&Fは私に白い背景を与え、Nimbusは私に他の色の無地を与えます。
私は明らかに何かが欠けています。Component
オーバーライドして元のメソッドに転送する必要がある他のメソッドはありますか?オーバーライドしない場合、デフォルトのコンポーネントはどのように描画されますpaint
か?(私もオーバーライドを試みましたpaintComponent
。違いはありません。)
これを行う別の方法はありますか?ネイティブスタイルJPanel
をそこにドロップしてから、カスタム(透明な背景)コンポーネントをその子にすることを考えましたが、その方法はわかりません。また、取得できるかどうかもわかりません。とにかくネイティブL&Fテーブルヘッダーの背景。実際、ネイティブのヘッダースタイル、つまりネイティブスタイルだけを取得できるかどうかは非常に疑わしいですJPanel
。
基本的に、カスタムテーブルヘッダー(および個別に、実際にはセルも)が必要ですが、ネイティブL&Fを過度に混乱させないようにします。
ありがとう!