java - 当鼠标光标位于 JTable 的单元格中时显示弹出菜单

标签 java swing jtable tooltip mouseevent

我需要这样的行为:当鼠标光标指向JTable单元格时 - 将需要显示弹出菜单或类似的内容。无需在单元格上单击鼠标。有什么建议吗?

最佳答案

JB Nizet 的观点很好。 OTOH,我准备了这个例子,并且“我们有技术”。

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

class TimesTable {

    public static void main(String[] args) {
        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                JTable t = new JTable(new TimesTableModel());
                t.setDefaultRenderer(Object.class, new TimesTableRenderer());

                JOptionPane.showMessageDialog(null, t);
            }
        });
    }
}

class TimesTableRenderer extends DefaultTableCellRenderer {
    @Override
    public Component getTableCellRendererComponent(
        JTable table,
        Object value,
        boolean isSelected,
        boolean hasFocus,
        int row,
        int column) {

        Component c = super.getTableCellRendererComponent(
            table,value,isSelected,hasFocus,row,column);
        JComponent jc = (JComponent)c;
        jc.setToolTipText(
            (row+1) + "x" + (column+1) + "=" + ((row+1)*(column+1)));
        return jc;
    }
}

class TimesTableModel extends DefaultTableModel {
    @Override
    public int getColumnCount() {
        return 7;
    }

    @Override
    public int getRowCount() {
        return 5;
    }

    @Override
    public Object getValueAt(int row, int column) {
        return new Integer((row+1)*(column+1));
    }
}

关于java - 当鼠标光标位于 JTable 的单元格中时显示弹出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544145/

相关文章:

java - 实现一个类方法继承自两个不同返回类型的接口(interface)

java - 如何配置 Eclipse 以格式化除字符串声明之外的所有 java 代码?

java - 想不出一个简单的 4 框 JPanel 布局

Java Swing : Select specefic row of Jtable after filtering data

java - 使用逗号格式化 JTable 列单元格中的整数

java - 我如何从一行进行变量更新

java - 无法从 PHP Mysql 检索图像

Java - 更新窗口覆盖

java - JButton 的 NullPointerException

java - 调整 JScrollBar 内 JTable 的大小