以下这个例子,可以看看import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;import jp.gr.java_conf.tame.swing.table.*;
/**
* @version 1.0 11/09/98
*/
public class JButtonTableExample extends JFrame { public JButtonTableExample(){
super( "JButtonTable Example" );
DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(new Object[][]{{"button 1","foo"},
{"button 2","bar"}},
new Object[]{"Button","String"});
JTable table = new JTable(dm);
table.getColumn("Button").setCellRenderer(new ButtonRenderer());
table.getColumn("Button").setCellEditor(new ButtonEditor(new JCheckBox()));
JScrollPane scroll = new JScrollPane(table);
getContentPane().add( scroll );
setSize( 400, 100 );
setVisible(true);
} public static void main(String[] args) {
JButtonTableExample frame = new JButtonTableExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}// File: ButtonRenderer.java
/* (swing1.1beta3) */package jp.gr.java_conf.tame.swing.table;import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;/**
* @version 1.0 11/09/98
*/
public class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() {
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else{
setForeground(table.getForeground());
setBackground(UIManager.getColor("Button.background"));
}
setText( (value ==null) ? "" : value.toString() );
return this;
}
}// File: ButtonEditor.java
/* (swing1.1beta3) */package jp.gr.java_conf.tame.swing.table;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;/**
* @version 1.0 11/09/98
*/
public class ButtonEditor extends DefaultCellEditor {
protected JButton button;
private String label;
private boolean isPushed; public ButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
} public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (isSelected) {
button.setForeground(table.getSelectionForeground());
button.setBackground(table.getSelectionBackground());
} else{
button.setForeground(table.getForeground());
button.setBackground(table.getBackground());
}
label = (value ==null) ? "" : value.toString();
button.setText( label );
isPushed = true;
return button;
} public Object getCellEditorValue() {
if (isPushed) {
//
//
JOptionPane.showMessageDialog(button ,label + ": Ouch!");
// System.out.println(label + ": Ouch!");
}
isPushed = false;
return new String( label ) ;
}
public boolean stopCellEditing() {
isPushed = false;
return super.stopCellEditing();
} protected void fireEditingStopped() {
super.fireEditingStopped();
}
}
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;import jp.gr.java_conf.tame.swing.table.*;
/**
* @version 1.0 11/09/98
*/
public class JButtonTableExample extends JFrame { public JButtonTableExample(){
super( "JButtonTable Example" );
DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(new Object[][]{{"button 1","foo"},
{"button 2","bar"}},
new Object[]{"Button","String"});
JTable table = new JTable(dm);
table.getColumn("Button").setCellRenderer(new ButtonRenderer());
table.getColumn("Button").setCellEditor(new ButtonEditor(new JCheckBox()));
JScrollPane scroll = new JScrollPane(table);
getContentPane().add( scroll );
setSize( 400, 100 );
setVisible(true);
} public static void main(String[] args) {
JButtonTableExample frame = new JButtonTableExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}// File: ButtonRenderer.java
/* (swing1.1beta3) */package jp.gr.java_conf.tame.swing.table;import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;/**
* @version 1.0 11/09/98
*/
public class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() {
setOpaque(true);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else{
setForeground(table.getForeground());
setBackground(UIManager.getColor("Button.background"));
}
setText( (value ==null) ? "" : value.toString() );
return this;
}
}// File: ButtonEditor.java
/* (swing1.1beta3) */package jp.gr.java_conf.tame.swing.table;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;/**
* @version 1.0 11/09/98
*/
public class ButtonEditor extends DefaultCellEditor {
protected JButton button;
private String label;
private boolean isPushed; public ButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
} public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (isSelected) {
button.setForeground(table.getSelectionForeground());
button.setBackground(table.getSelectionBackground());
} else{
button.setForeground(table.getForeground());
button.setBackground(table.getBackground());
}
label = (value ==null) ? "" : value.toString();
button.setText( label );
isPushed = true;
return button;
} public Object getCellEditorValue() {
if (isPushed) {
//
//
JOptionPane.showMessageDialog(button ,label + ": Ouch!");
// System.out.println(label + ": Ouch!");
}
isPushed = false;
return new String( label ) ;
}
public boolean stopCellEditing() {
isPushed = false;
return super.stopCellEditing();
} protected void fireEditingStopped() {
super.fireEditingStopped();
}
}
解决方案 »
- 关于连接池的问题
- jsp 实例化javaBean 对象的问题
- 用Spring+Hibernate. SpringDAO如何修改数据库?
- 请问下 webservice 操作sql2000数据库的方式是 怎么操作,然后怎样把数据库的东西弄能xml 格式的 进行传输,接受到xml 然后在转化下 ,
- jsp表达式中有变量的问题
- 从小例子开始学习:如何使用dom4j新建一个.xml文件?
- 高分求struts分页代码,符合mvc的,急(100)
- 立即给分:笨鸟提问:请问可以使用struts来完全取代javascript吗?比如对form里select的change控制等???
- 在给j2ee安装插件时不成功,弹这个框,,求解。。。。。。
- struts2和hibernate整合的web.xml中的问题
- 小第 开始学struts 写了一个简单的程序但有错,请大家帮忙看看啊!
- 出来炸到,请前辈们指教一下
没个标题加载不同的TableCellEditor