您的位置:首页 > 职场人生

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("选择");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息