Java Swing Tutorial - Java DefaultCellEditor .getTableCellEditorComponent (JTable table, Object value, boolean isSelected, int row, int column)








Syntax

DefaultCellEditor.getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) has the following syntax.

public Component getTableCellEditorComponent(JTable table,     Object value,     boolean isSelected,     int row,     int column)

Example

In the following code shows how to use DefaultCellEditor.getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) method.

/*from   w ww .jav  a2 s .  c om*/
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;

import javax.swing.DefaultCellEditor;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;

public class Main extends JFrame {
  DefaultTableModel model = new DefaultTableModel(new Object[][] { { "some", "text" },
      { "any", "text" }, { "even", "more" }, { "text", "strings" }, { "and", "other" },
      { "text", "values" } }, new Object[] { "Column 1", "Column 2" });

  public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JTable table = new JTable(model);
    table.setDefaultEditor(Object.class, new MyEditor());
    getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
    pack();
  }

  public static void main(String arg[]) {
    new Main().setVisible(true);
  }
}

class MyEditor extends DefaultCellEditor {
  public MyEditor() {
    super(new JTextField());
  }

  public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
      int row, int column) {
    JTextField editor = (JTextField) super.getTableCellEditorComponent(table, value, isSelected,
        row, column);

    if (value != null)
      editor.setText(value.toString());
    if (column == 0) {
      editor.setHorizontalAlignment(SwingConstants.CENTER);
      editor.setFont(new Font("Serif", Font.BOLD, 14));
    } else {
      editor.setHorizontalAlignment(SwingConstants.RIGHT);
      editor.setFont(new Font("Serif", Font.ITALIC, 12));
    }
    return editor;
  }
}