如何在JAVA表格中添加按钮组件?

如何在JAVA表格中添加按钮组件?,第1张

就是JTable中,加入JButton对吧。那个简单。写一个类继承与JButton并实现javax.swing.table.TableCellRenderer接口就行了。

然后用JTable的getColumn(Object)获取列,再用setCellRenderer(TableCellRenderer cellRenderer)方法就可以添加进表格了。

附相关API:

javax.swing.JTable

public TableColumngetColumn(Object identifier)返回表中列的 TableColumn 对象,当使用 equals 进行比较时,表的标识符等于

identifier。

参数:identifier - 标识符对象

返回:与标识符相匹配的 TableColumn 对象

javax.swing.table.TableCellRenderer

public interface TableCellRenderer

此接口定义了要成为 JTable 中单元格渲染器的任意对象所需的方法。

getTableCellRendererComponentComponentgetTableCellRendererComponent(JTable table,

Object value,

boolean isSelected,

boolean hasFocus,

int row,

int column)返回用于绘制单元格的组件。此方法用于在绘制前适当地配置渲染器。

TableCellRenderer 还负责呈现表示该表当前 DnD 放置位置的单元格(如果有)。如果此呈现器负责呈现 DnD 放置位置,则它应该直接查询表以确定给定的行和列是否表示放置位置:

JTable.DropLocation dropLocation = table.getDropLocation()

if (dropLocation != null

&&!dropLocation.isInsertRow()

&&!dropLocation.isInsertColumn()

&&dropLocation.getRow() == row

&&dropLocation.getColumn() == column) {

// this cell represents the current drop location

// so render it specially, perhaps with a different color

}

在打印 *** 作期间,将调用此方法(isSelected 和 hasFocus 为

false)阻止选择和焦点在打印输出中出现。要根据是否打印表进行其他定制,检查 JComponent.isPaintingForPrint()

的返回值。

参数:table - 要求渲染器绘制的 JTable;可以为 nullvalue - 要呈现的单元格的值。由具体的渲染器解释和绘制该值。例如,如果 value 是字符串

"true",则它可呈现为字符串,或者也可呈现为已选中的复选框。null 是有效值

isSelected - 如果使用选中样式的高亮显示来呈现该单元格,则为 true;否则为 false

hasFocus - 如果为

true,则适当地呈现单元格。例如,在单元格上放入特殊的边框,如果可以编辑该单元格,则以彩色呈现它,用于指示正在进行编辑

row - 要绘制的单元格的行索引。绘制头时,row 值是 -1

column - 要绘制的单元格的列索引

javax.swing.table.TableColumn

public void setCellRenderer(TableCellRenderer cellRenderer)设置 JTable 用于绘制此列各值的 TableCellRenderer。

参数:cellRenderer - 新的 cellRenderer

1 定义一个按钮

[cpp] view plain copy

QPushButton * pBtn = new QPushButton()

2 链接信号与曹

[cpp] view plain copy

connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClicked()))

3 按钮添加到单元格内

[cpp] view plain copy

table->setCellWidget(0,0,pBtn)//如果点击按钮出现崩溃现象,就添加QTableWidgetItem 到按钮的那个单元格

4 实现按钮的事件

[cpp] view plain copy

void myPic::OnBtnClicked(void)

{

QPushButton * senderObj=qobject_cast<QPushButton *>(sender())

if(senderObj == 0)

{

return

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11517244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存