JCheckbox と JComboBox 以外の DefaultTableCellRenderer でサポートされているコンポーネントを知りたい...
2 に答える
2
DefaultTableCellRenderer
それ自体は、チェックボックスまたはコンボボックスをレンダリングしません。実装JTable
に基づいて使用されるいくつかのデフォルトレンダラーを提供することです。以下は、内部クラスとして実装されているいくつかのデフォルト レンダラーを初期化getColumnClass()
するコードです。JTable
protected void createDefaultRenderers() {
defaultRenderersByColumnClass = new UIDefaults(8, 0.75f);
// Objects
setLazyRenderer(Object.class,
"javax.swing.table.DefaultTableCellRenderer$UIResource");
// Numbers
setLazyRenderer(Number.class, "javax.swing.JTable$NumberRenderer");
// Doubles and Floats
setLazyRenderer(Float.class, "javax.swing.JTable$DoubleRenderer");
setLazyRenderer(Double.class, "javax.swing.JTable$DoubleRenderer");
// Dates
setLazyRenderer(Date.class, "javax.swing.JTable$DateRenderer");
// Icons and ImageIcons
setLazyRenderer(Icon.class, "javax.swing.JTable$IconRenderer");
setLazyRenderer(ImageIcon.class, "javax.swing.JTable$IconRenderer");
// Booleans
setLazyRenderer(Boolean.class, "javax.swing.JTable$BooleanRenderer");
}
次に、初期化defaultRenderersByColumnClass
されたハッシュテーブルが で使用されgetDefaultRenderer()
ます。
于 2012-12-13T04:18:46.983 に答える
1
JTextField
問題を正しく理解しているかどうかはわかりませんが、いくつかのコンポーネント (例: ) をセルに挿入したい場合はJTable
、次のようなカスタム レンダラーを作成できます。
public class CustomTableCellRenderer extends DefaultTableCellRenderer
{
//.....
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
//create a component according to arguments recieved, and return
//e.g. in simplest terms
return new JTextField();
}
setDefaultRenderer()
次に、各列のメソッドを使用して、テーブルでそのレンダラーを使用できます
于 2012-12-13T05:05:18.957 に答える