JTable监听整理

JTable的监听有以下几种

JTable table = new JTable();

1。选择某一行(当选择这一行时,需要产生某种事件)

当用鼠标对表格进行选取,在响应行选取变化事件(ListSelectionListener)时,鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。前者的事件属性中getValueIsAdjusting()=true,后者是false。因此,可以通过判断getValueIsAdjusting()来区别鼠标按下和释放,进行不同的操作。

    而用键盘的上下键选取时,只有一次事件响应。

table.getSelectionModel().addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
//do you what to do

             }});

2。选择某一列(当选择这一列时,需要产生某种事件)[ListSelectionListener]

table.getColumnModel().addColumnModelListener(
new TableColumnModelListener() ...{
public void columnAdded(TableColumnModelEvent e) {}
public void columnMarginChanged(ChangeEvent e) {
                     }
public void columnMoved(TableColumnModelEvent e) {
                     }
public void columnRemoved(TableColumnModelEvent e) {
                     }
public void columnSelectionChanged(ListSelectionEvent e) {}
);

3.单元格响应事件[TableModelListener此细粒度通知告知侦听器单元格、行或列的哪些具体范围发生了更改]

table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {});

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过添加 ActionListener 来监听 JTable 上的按钮。首先,您需要创建一个 JButton,并将其添加到 JTable 中的每一行。然后,为每个按钮添加 ActionListener,并在监听器中处理按钮点击事件。 下面是一个简单的示例代码,演示如何在 JTable监听按钮点击事件: ```java import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class TableButtonListener { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建表格模型 DefaultTableModel model = new DefaultTableModel(new Object[]{"Name", "Button"}, 0); // 向模型中添加数据 model.addRow(new Object[]{"John", new JButton("Button 1")}); model.addRow(new Object[]{"Jane", new JButton("Button 2")}); // 创建 JTable JTable table = new JTable(model); // 获取按钮的单元格渲染器 TableColumn buttonColumn = table.getColumn("Button"); buttonColumn.setCellRenderer(new TableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { return (Component) value; } }); // 获取按钮的单元格编辑器 buttonColumn.setCellEditor(new DefaultCellEditor(new JCheckBox()) { @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { return (Component) value; } }); // 添加按钮点击事件监听table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int row = table.rowAtPoint(e.getPoint()); int column = table.columnAtPoint(e.getPoint()); // 检查点击的是否是按钮 if (column == table.getColumn("Button").getModelIndex()) { // 处理按钮点击事件 JButton button = (JButton) table.getValueAt(row, column); System.out.println("Button clicked: " + button.getText()); } } }); frame.add(new JScrollPane(table)); frame.pack(); frame.setVisible(true); } } ``` 在这个示例中,我们创建了一个包含两的表格模型,其中一是按钮。我们设置了单元格渲染器和编辑器,以便在表格中显示按钮。然后,我们通过添加鼠标点击事件监听器来处理按钮的点击事件。 当您点击按钮时,程序会打印出相应按钮的文本内容。您可以在监听器中根据需要执行其他操作。 希望这可以帮助到您!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值