すべてのJComponentで機能するように作成されたカスタムJTable(15行x 20列)があります。現在、JComboBoxes、JTextFields、およびJButtonsの混合に使用しています。ああ、私はJava5を使用しています(要件)。
2つの質問があります:
1)1つ目は、TableCellRendererクラスとその単一のメソッドに関するものです。
public Component getTableCellRendererComponent(final JTable table,
final Object value,
final boolean isSelected,
final boolean hasFocus,
final int row,
final int column) {...}
Object value
引数をJComponentにキャストし、背景色を変更する可能性があります。大きな問題ではない。私が持っている質問は、なぜこのメソッドがsoooooと呼ばれることが多いのかということです。単一のセルを選択すると、23回呼び出されます。2つの関連のないアプリケーション間でAlt-Tabキーを押すと(私はWin7を使用します)、このメソッドは200回以上呼び出されます(JButtonsとJTextFieldsの場合のみ)。これは何らかの形で必要ですか?そうでない場合は、不要なレンダリング呼び出しを停止するにはどうすればよいですか?
2)2番目の質問は、JTable自体に関するものです。セルを編集していて(JTextFieldのカーソルが点滅している)、別のセルをクリックすると、そのセルのみが選択されます。ただし、別のセルをクリックすると、そのセルの編集が開始されます。私が考えることができるのは、最初の編集コンポーネントから、JTableを選択してから、その中のコンポーネントを選択しているということだけです。これを変更する方法はありますか?一方の方向(最初のクリックで常にjtableを選択)またはもう一方の方向(最初のクリックで常にセルに入る)のいずれかです。可能であれば、最初のオプションをお勧めします。
洞察/助けを与えることができる人に感謝します!