表格里添加按钮

  • 格式:doc
  • 大小:25.00 KB
  • 文档页数:4

package test_JTable;
import java.awt.BorderLayout;
import java.awt.Color;
import ponent;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class MainFrame {
private JFrame frame;
private JTable table;
public MainFrame() {
frame = new JFrame("JTable 学习");
table = new JTable();
String[] head = { "A", "B", "C", "D" };
Object[][] obj = { { "1", "2", "3" }, { "4", "5", "6" },
{ "4", "5", "6" } };
TableModel tm = new DefaultTableModel(obj, head);
JScrollPane jsp = new JScrollPane();
jsp.getViewport().add(table);
table.setModel(tm);
DefaultTableCellRenderer dtc = new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
if (row % 2 == 0) {
setBackground(Color.black);
} else {
setBackground(Color.red);
}
return super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
};
table.getColumn(head[2]).setCellRenderer(dtc);
table.getColumn(head[3]).setCellRenderer(new MyRender());
JComboBox<String> jcb = new JComboBox<String>();
jcb.addItem("A");
jcb.addItem("B");
table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(jcb));
table.getColumnModel().getColumn(3).setCellEditor(new MyRender());
frame.add(BorderLayout.CENTER, jsp);
frame.setVisible(true);
frame.pack();
}
public static void main(String[] args) {
MainFrame mf = new MainFrame();
}
}
package test_JTable;
import ponent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractCellEditor;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
public class MyRender extends AbstractCellEditor implements TableCellEditor, ActionListener, TableCellRenderer{
JButton button;
public MyRender()
{
button = new JButton("MyButton");
button.addActionListener(this);
}
@Override
public Object getCellEditorV alue() {
// TODO Auto-generated method stub
return null;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
return button;
}
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "按钮已经点击!");
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) { // TODO Auto-generated method stub
return button;
}
}。