请问如何往JTable的单元格中添加一个按钮?

topscien 2008-10-28 04:04:49
如题,为什么我写的代码单元格内却是一大串字符串呢?

Vector<Object> v ;
JButton button ;
v = new Vector<Object>() ;
button = new JButton("登记") ;
v.add("name") ;
v.add("type") ;
v.add((JButton)button) ;
((DefaultTableModel)table.getModel()).addRow(v) ;
希望高手们能为我解答一下~~
...全文
1233 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
topscien 2008-10-29
  • 打赏
  • 举报
回复
能详细一点吗?一头雾水哦~~~
cowputer 2008-10-29
  • 打赏
  • 举报
回复
你要改的应该是Render,和TableUI,不是改model
cowputer 2008-10-29
  • 打赏
  • 举报
回复

public class TableEditor extends DefaultCellEditor {
public TableEditor(JCheckBox checkBox) {
super(checkBox);
}
public TableEditor(JComboBox comboBox) {
super(comboBox);
}
public TableEditor(JTextField textField) {
super(textField);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (row<0||column!=1)
return super.getTableCellEditorComponent(table, value, isSelected, row, column);
else {
JButton label = new JButton("button");
label.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "test");
}
});
label.setPreferredSize(new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(),20));
return label;
}
}
}
cowputer 2008-10-29
  • 打赏
  • 举报
回复

public class TableRender extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (row<0||column!=1)
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
else {
JButton label = new JButton("button");
label.setPreferredSize(new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(),20));
return label;
}
}
}
cowputer 2008-10-29
  • 打赏
  • 举报
回复

public class TestJTable {
public static JTable table;
public static void main(String[] args) {
JFrame frame = new JFrame("Test Table Header");
table = new JTable(6,6);
TableRender render = new TableRender();
table.setRowHeight(20);
TableEditor editor = new TableEditor(new JTextField());
table.getColumnModel().getColumn(1).setCellRenderer(render);
table.getColumnModel().getColumn(1).setCellEditor(editor);
editor.setClickCountToStart(0);
JScrollPane pane = new JScrollPane(table);
frame.setContentPane(pane);
frame.setPreferredSize(new Dimension(500,500));
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
c# xptable NET最强,最全功能的表控件 可以定制一个ListView,能够在列插入图像、下拉框、可上下调整的数字、进度条等等。 [功能] 全定制可视化界面 支持XP风 轻易添加再定制的控件 可隐藏列 行、列、单元可以被Disable 每个单元、列可以有Tooltip 等等…… [XPTable] XPTable包含下面的组件: 1. Table, 2. ColumnModel 和它的 Columns, 3. TableModel 和它的 Row 和 Cell, 4. Renderer 5. Editor [翻译] Mathew Hall.著XPTable - .NET ListView meets Java's JTable [简介] 由于项目需要,我需要定制一个ListView,它必须能够在列插入图像、下拉框、可上下调整的数字、进度条等等。由于已经有了一个Java下的背景,我将简单地基于那个JTable封装。 [功能] 全定制可视化界面 支持XP风 轻易添加再定制的控件 可隐藏列 行、列、单元可以被Disable 每个单元、列可以有Tooltip 等等…… [XPTable] XPTable包含下面的组件: 1. Table, 2. ColumnModel 和它的 Columns, 3. TableModel 和它的 Row 和 Cell, 4. Renderer 5. Editor [控件使用] 首先加载控件到Toolbox上(添加一个Item,引用XPTable.dll) 然后,拖动Table, ColumnModel 和 TableModel到Form上,设置Table的ColumnModel 和 TableModel属性,添加Column到ColumnModel,添加Row 和 Cell到TableModel.

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧