TableCellRenderer和TableCellEditor
2010-05-01 23:57
417 查看
package dao;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class MyTableCellEditor extends JRadioButton implements TableCellEditor {
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
public MyTableCellEditor() {
super();
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
fireEditingStopped();
}
});
}
public void addCellEditorListener(CellEditorListener listener) {
listenerList.add(CellEditorListener.class, listener);
}
public void removeCellEditorListener(CellEditorListener listener) {
listenerList.remove(CellEditorListener.class, listener);
}
protected void fireEditingStopped() {
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i] == CellEditorListener.class) {
listener = (CellEditorListener) listeners[i + 1];
listener.editingStopped(changeEvent);
}
}
}
protected void fireEditingCanceled() {
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i] == CellEditorListener.class) {
listener = (CellEditorListener) listeners[i + 1];
listener.editingCanceled(changeEvent);
}
}
}
public void cancelCellEditing() {
fireEditingCanceled();
}
public boolean stopCellEditing() {
fireEditingStopped();
return true;
}
public boolean isCellEditable(EventObject event) {
return true;
}
public boolean shouldSelectCell(EventObject event) {
return true;
}
public Object getCellEditorValue() {
return new Boolean(this.isSelected());
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
return this;
}
public void AddRadioButton(JTable jtable)
{
TableCellEditor myRenderer = new MyTableCellEditor();
jtable.getColumnModel().getColumn(0).setCellEditor(myRenderer);
jtable.getColumnModel().getColumn(0).setHeaderValue("选择");
}
}
package dao;
import java.awt.Component;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
public class MyTableCellRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {// 根据特定的单元格设置不同的Renderer,假如你要在第2行第3列显示图标
JRadioButton jbtn=new JRadioButton();
return jbtn;
}
public void AddJRadioButton(JTable jtable)
{
TableCellRenderer myRenderer = new MyTableCellRenderer();
jtable.getColumnModel().getColumn(0).setCellRenderer(myRenderer);
jtable.getColumnModel().getColumn(0).setHeaderValue("选择");
}
}
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class MyTableCellEditor extends JRadioButton implements TableCellEditor {
protected EventListenerList listenerList = new EventListenerList();
protected ChangeEvent changeEvent = new ChangeEvent(this);
public MyTableCellEditor() {
super();
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
fireEditingStopped();
}
});
}
public void addCellEditorListener(CellEditorListener listener) {
listenerList.add(CellEditorListener.class, listener);
}
public void removeCellEditorListener(CellEditorListener listener) {
listenerList.remove(CellEditorListener.class, listener);
}
protected void fireEditingStopped() {
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i] == CellEditorListener.class) {
listener = (CellEditorListener) listeners[i + 1];
listener.editingStopped(changeEvent);
}
}
}
protected void fireEditingCanceled() {
CellEditorListener listener;
Object[] listeners = listenerList.getListenerList();
for (int i = 0; i < listeners.length; i++) {
if (listeners[i] == CellEditorListener.class) {
listener = (CellEditorListener) listeners[i + 1];
listener.editingCanceled(changeEvent);
}
}
}
public void cancelCellEditing() {
fireEditingCanceled();
}
public boolean stopCellEditing() {
fireEditingStopped();
return true;
}
public boolean isCellEditable(EventObject event) {
return true;
}
public boolean shouldSelectCell(EventObject event) {
return true;
}
public Object getCellEditorValue() {
return new Boolean(this.isSelected());
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
return this;
}
public void AddRadioButton(JTable jtable)
{
TableCellEditor myRenderer = new MyTableCellEditor();
jtable.getColumnModel().getColumn(0).setCellEditor(myRenderer);
jtable.getColumnModel().getColumn(0).setHeaderValue("选择");
}
}
package dao;
import java.awt.Component;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
public class MyTableCellRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {// 根据特定的单元格设置不同的Renderer,假如你要在第2行第3列显示图标
JRadioButton jbtn=new JRadioButton();
return jbtn;
}
public void AddJRadioButton(JTable jtable)
{
TableCellRenderer myRenderer = new MyTableCellRenderer();
jtable.getColumnModel().getColumn(0).setCellRenderer(myRenderer);
jtable.getColumnModel().getColumn(0).setHeaderValue("选择");
}
}
相关文章推荐
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- TablecellRenderer和TableCellEditor
- Swing中的TableCellRenderer与TableCellEditor的作用
- TableCellRenderer和TableCellEditor(一)
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- TablecellRenderer和TableCellEditor
- TableCellRenderer & TableCellEditor(二)
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- TableCellRenderer & TableCellEditor(三)
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 一个TableCellRenderer的例子
- 使用JCombox实现TableCellRenderer作为JTable的单元格例子
- TableCellRenderer用法实践(一)
- TableCellRenderer用法实践(2)定制JTableHeader
- 为JFace(TableViewer,TreeViewer...)创建可直接编辑的DialogCellEditor
- SWT/JFace中Table相同列多种类型CellEditor以及参照类型编辑器的实现
- TableCellRenderer用法实践(一)