問題タブ [tablecellrenderer]

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

swing - jTable の行を動的に色付けする

私の前の質問、Coloring jTable rowへの回答では、新しい質問がここに行くかどうかはわかりませんが、色を行に設定することは機能しています。しかし、私は for ループからそれを与えたいと思っています。つまり、i 番目の行の色を設定したいということです。使用したものをお譲りします。

メソッド cellrenderer を呼び出します。

ここでは、最初の列の値が BidNumber と等しいときに行に色を付けようとしていますが、セルレンダラー (ここ) では、row==1 として設定され、条件が true になるたびに 1 番目の行が色付けされます..どうすればi番目の行に設定できますか?

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

java - JTableの一部の行の色を変更しますが、すべてではありません

これを実現するために、カスタムセルレンダラークラスを作成しました。

そして、このレンダラーをテーブルの列で使用するように設定しました。

長さ=7の緑のString[]を含む行と、デフォルトの色の行が必要です。しかし、私のすべての行が緑色になるのは興味深いことです。ご覧のとおり、印刷ラインがあります。4回印刷されますが(私のテーブルには12行あります)、すべての行が4行ではなく緑色になります。何が問題なのですか。

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

java - FEST: セルが CellRenderPane を使用して JTable の下にあるときにセル値を取得する

次のようなコードがあります。

JCellFixtures または値またはコンテンツを取得しようとすると、すべてが null になります。行数または列数のみを取得しています。JTable は内部的に CellRendererPanel を使用しており、これを取得する必要があると思います。しかし、どのように?JTable には、作成する ContainerFixture がありません.panel()。これらの状況でセル値を取得する方法はありますか? セルレンダラーパネルがある場合、通常はどのように行われますか?

これは、FEST デバッガーの階層です。

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

java - カスタムJTableセルエディタとセルレンダラーの使用方法

カスタムテーブルレンダリングとカスタムセルエディターを使用してJTableを作成しました。これにより、画像に結果が表示されます。

ここに画像の説明を入力してください

JPanelを拡張した別のクラスを使用して、最初のテーブルセルに表示されるパネルを作成しました。テーブル値を次のように追加します。

そして、これはこのテーブルを作成するための私のテーブルカスタムクラスです。

私の問題は、テキストフィールドに入力したり、チェックボックスを変更したり、ボタンをクリックしたりできないと思ったとおりにパネルが表示されていると考えられます。これを解決する方法を教えてください。

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

java - 1つのJTableにさまざまな行の高さを設定する方法

1つの列を含むJTableがあり、各テーブルセルのセルレンダリングは動的に生成されるJPanelであるため、各テーブルセルの高さはJPanelに応じて異なる必要があります。jpanelがレンダリングされる場所で行の高さを変更しようとしましたが、動作していません。JTableでさまざまなJTable行の高さを設定する方法を教えてください。

これが私がこれをやろうとした方法です、

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

java - セル内の jscrollpane が機能しない jtable

Web をサーフィンしていて、JTextPane を JTable のセルに使用する方法を見つけました。この方法でのみテキストを中央に表示できますが、テキストがセルの高さよりも長い場合にスクロールバーを表示する JScrollPane を追加すると、スクロールバーはセルに表示されますが、移動しません 表示されるだけで移動しません。

私は org.jdesktop.swingx.renderer.DefaultTableRenderer の swingx フレームワークを使用しています。ここに私のコードの一部があります:



tabla.getColumnModel().getColumn(col).setCellRenderer( new DefaultTableRenderer( new TextAreaProvider() ) )JScrollPane を使用してセルを生成するためのコードを配置しました。

いろいろ試して疲れましたが、うまくいきません。解決策が必要です!

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

java - 明確なテーブルセルの背景色を変更する方法

私は CustomTableCellRender を持っています

...

そして、それは通常のユーティリティで機能しました。セルの背景色を変更する必要があります。特定のセルではなく、すべての列、すべてのセルで色を設定します。

私は何をする必要がありますか?

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

java - getTableCellRendererComponent 呼び出しの数を減らす

TableCellRenderer を実装し、各行に (JLabel ではなく) JTextArea を表示するカスタム セル レンダラーを使用しています。私は基本的に、行ごとに追加の計算を行う getTableCellRendererComponent(...) メソッドをオーバーライドしています。これらの計算は、テーブルの更新ごとに 1 回だけ実行する必要があります。マウスを動かすたびに getTableCellRendererComponent メソッドが呼び出されるため、ラグが発生します。したがって、遅延を回避するために getTableCellRendererComponent が呼び出されないようにする必要があると考えました。

考慮事項:

1) 私のテーブルには 1 列しかなく、ヘッダーがありません。

2) 私のデータは静的で、AbstractTableModel を実装するカスタム テーブルモデル クラスの getValueAt(int row, int column) メソッドによって ArrayList から読み取られます。

3) マウス モーション イベントを監視する必要はありません。

4) 私は多くのデータを期待していないので、テーブル全体を一度に表示するか、完全にキャッシュしたいかもしれません。

5) ほとんどの遅延は、getTableCellRendererComponent から戻るたびにテキストを設定することによって発生します。これは、一部の行が右から左への文字を使用しており、RTL テキストのレンダリングに余分な時間が必要なためです。

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

java - JTableの列固有のTableCellRenderersを指定します

ダブルスをJTable表示する複数の列があるがあり、その一部は比率であり、その他はドル値です。TableCellRenderer比率に使用するaと、ドルの値に使用するaを指定したいと思います。

Javaチュートリアルには、「特定の列のセルでレンダラーを使用するように指定するには、TableColumnメソッドを使用する」と書かれていますsetCellRenderer。これは役に立ちますが、どの時点でこのメソッドを呼び出す必要があるのか​​がわかりませんTableColumn。これを行う標準的な方法はありますか?コンストラクターでこれを行うカスタムを作成する必要がJTableありますか?またはカスタムTableColumnModelTableModel理想的には、私がすでに持っている習慣からこれを実行できるようにしたいと思いますが、これが可能になる可能性は低いようです。

どんな助けでもいただければ幸いです。ありがとう

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

java - TableCellRendererを使用してセルの背景を半分だけ塗りつぶすにはどうすればよいですか?

テーブルの同じセルを 2 色で塗りつぶしたい。セルにもテキストを表示する必要があり、現在の構造を維持して表示したいと考えています。

ラベル、パネルで試しましたが、正しく動作しません。また、セルのステータスに基づいて色を更新する必要があります (前半の色を更新し、後半の色を維持します)。