为JTable添加单元格工具提示

覆盖JTable的getToolTipText(MouseEvent e)方法

 

@Override
public String getToolTipText(MouseEvent e) {
	int col = columnAtPoint(e.getPoint());
	if (col != 0) {
		return null;
	}
	int row = rowAtPoint(e.getPoint());
	String toolTip = null;
	if (row > -1 && col > -1) {
		Object value = getValueAt(row, col);
		if (value != null && !value.toString().isEmpty())
			toolTip = value.toString();
	}
	return toolTip;
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要为 JTable 中的单元格添加按钮效果和事件效果,可以使用 TableCellRenderer 和 TableCellEditor 接口来实现。以下是一个示例代码: ```java import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractCellEditor; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; public class JTableButtonDemo { public static void main(String[] args) { JFrame frame = new JFrame("JTable Button Demo"); Object[][] data = { { "Button 1", "Button 2" }, { "Button 3", "Button 4" } }; String[] columnNames = { "Column 1", "Column 2" }; DefaultTableModel model = new DefaultTableModel(data, columnNames); JTable table = new JTable(model); table.getColumn("Column 1").setCellRenderer(new ButtonRenderer()); table.getColumn("Column 1").setCellEditor(new ButtonEditor()); frame.add(new JScrollPane(table)); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } static class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() { setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setText((value == null) ? "" : value.toString()); return this; } } static class ButtonEditor extends AbstractCellEditor implements TableCellEditor, ActionListener { private JButton button; private Object value; public ButtonEditor() { button = new JButton(); button.addActionListener(this); } public Object getCellEditorValue() { return value; } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { this.value = value; button.setText((value == null) ? "" : value.toString()); return button; } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(button, "Button clicked!"); fireEditingStopped(); } } } ``` 在上面的示例代码中,我们创建了一个 JTable,其中的第一列单元格都是按钮,点击每个按钮会弹出一个对话框。我们使用 ButtonRenderer 类来渲染单元格中的按钮,使用 ButtonEditor 类来编辑单元格中的按钮。在 ButtonEditor 中,我们添加了一个 ActionListener 来处理按钮的点击事件。注意:这个示例只是演示了如何为 JTable 添加按钮效果和事件效果,实际应用中可能需要更复杂的逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值