请问一下怎么样在JTable中加入JComBox或JCheckbox
有没有例子
有没有例子
解决方案 »
- 字符串处理分切问题
- 想求输入10个数求平均值,最小值,最大值`!编出的代码。发现不能输入数字
- Graphics 和 Graphics2D有什么区别,不都是平面上的东西吗?
- java 发送Email,碰到530错误
- ssh框架中, 它们到底是怎么整合的,这个原理一直没搞清楚..请高手赐教
- 请教把java程序制作成可执行的JAR文件包具体步骤
- JAVA群交流
- 我应该在Java?还是Jsp的哪里关闭连接??
- 菜问:关于 File(String pathname)中的pathname
- 有什么安装程序制作工具比较易用吗?非常急,在线等待。
- 急!!!关于用时间戳命名重复的问题请教!!
- 用java实现oracle数据库查询数据,结果用一个固定格式的表格形式打印,应该怎样实现? 用那些接口?
JComboBox comb;
String[] items = {"请选择","网吧","家里","单位"};
comb = new JComboBox(items);
//comb 绑定到第三列
TableColumnModel tcm = this.getTableHeader().getColumnModel();
TableColumn tc01 = tcm.getColumn(2);
tc01.setCellEditor(new DefaultCellEditor(comb));
this 可以换成你的table名字
TableColumn tc = table.getColumn(3);
tc.setCellEditor(new DefaultCellEditor(new JComboBox(tc)));
类一:import java.awt.Component;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;public class MyTable extends JFrame implements ActionListener { public MyTable() {
super("Table");
Toolkit t = this.getToolkit();
int height = t.getScreenSize().height;
int width = t.getScreenSize().width;
this.setSize(width / 3, height / 3);
this.setLocation(width / 2, height / 2);
this.create();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
} private Component create() {
JScrollPane sp = new JScrollPane(this.getTab());
return this.getContentPane().add(sp);
} private JTable getTab() {
String[] columnName = {"No.", "Name", "Sex", "Address", "Tel.", "Other" };
String[][] data =
{
{"1", "mical", "man", "where", "2368", "nothing" },
{"2", "mical2", "man", "where", "2368", "nothing" },
{"3", "mical3", "man", "where", "2368", "nothing" },
{"4", "mical4", "man", "where", "2368", "nothing" },
{"5", "mical5", "man", "where", "2368", "nothing" },
{"6", "mical6", "man", "where", "2368", "nothing" } };
JTable j = new JTable(data, columnName);
ComboBoxColumn cbc = new ComboBoxColumn(j,5);
return j;
} public static void main(String[] args) {
MyTable t = new MyTable();
// JFrame.setDefaultLookAndFeelDecorated(true);
// try {
// UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
// } catch (Exception e) {
// System.out.println("Substance Raven Graphite failed to initialize");
// }
// SwingUtilities.invokeLater(new Runnable() {
// public void run() {
// MyTable w = new MyTable();
// w.setVisible(true);
// }
// });
} @Override
public void actionPerformed(ActionEvent e) { }
}类二:package test;import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;public class ComboBoxColumn extends AbstractCellEditor implements
TableCellRenderer,
TableCellEditor,
ActionListener { private JComboBox renderCbb = null; private JComboBox editorCbb = null; public ComboBoxColumn(JTable j, int column) { super();
editorCbb = new JComboBox();
renderCbb = new JComboBox();
this.setCbb();
TableColumnModel tcm = j.getColumnModel();
tcm.getColumn(column).setCellEditor(this);
tcm.getColumn(column).setCellRenderer(this);
} public void setCbb() {
editorCbb.addItem("aaa");
editorCbb.addItem("bbb");
editorCbb.setSelectedIndex(-1);
} @Override
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column) {
if (hasFocus) {
renderCbb.setForeground(table.getForeground());
renderCbb.setBackground(UIManager.getColor("Button.background"));
} else if (isSelected) {
renderCbb.setForeground(table.getSelectionForeground());
renderCbb.setBackground(table.getSelectionBackground());
} else {
renderCbb.setForeground(table.getForeground());
renderCbb.setBackground(UIManager.getColor("Button.background"));
} return renderCbb;
} @Override
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
return editorCbb;
} @Override
public void addCellEditorListener(CellEditorListener l) {
super.addCellEditorListener(l);
} @Override
public boolean stopCellEditing() {
return true;
} @Override
public Object getCellEditorValue() {
return editorCbb.getSelectedItem();
} @Override
public void actionPerformed(ActionEvent e) { } @Override
public void cancelCellEditing() {
super.cancelCellEditing();
}
}
对JTABLE不太熟悉。