java - 作为 JComponent 或 JPanel 的 JTable 工具提示

标签 java swing jtable jfreechart jxtable

我正在使用 JTable(特别是 JXTable ),当我将鼠标悬停在单元格上时,我想呈现某种 JPanel 或组件(以使用 JFreeChart 显示一些图形数据)

我知道 JTable 有这个:

http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getToolTipText(java.awt.event.MouseEvent)

但这显然只是显示文本工具提示的一种方式。有什么想法或解决方案可以做到这一点吗?

最佳答案

您可以在鼠标悬停时显示弹出窗口,并且可以根据需要自定义弹出窗口。我希望下面的代码会对您有所帮助。

JFrame frame = new JFrame("Sort Records based on Time");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Object rows[][] = { { "Loganathan Mohanraj", 31 },
    { "Renuka Loganathan", 26 } };

String columns[] = { "Name", "Age" };

final JPopupMenu popUp = new JPopupMenu("Customized Tool Tip");

final JTable table = new JTable(new DefaultTableModel(rows, columns));
table.addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseMoved(MouseEvent e) {
    int row = table.rowAtPoint(e.getPoint());
    int column = table.columnAtPoint(e.getPoint());

    Rectangle bounds = table.getCellRect(row, column, true);

    popUp.setVisible(false);
    popUp.removeAll();
    popUp.add(new JTextField("Mouse Position - Row : " + row + ", Column : " + column));
    popUp.show(table, bounds.x, bounds.y + bounds.height);
    popUp.setVisible(true);
    }
});

JScrollPane pane = new JScrollPane(table);

frame.add(pane, BorderLayout.CENTER);

frame.setSize(300, 150);
frame.setVisible(true);

关于java - 作为 JComponent 或 JPanel 的 JTable 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438803/

相关文章:

java - 应用程序需要 JRE 版本

java - 在 Java Swing 中与 BoxLayout 作斗争

java - 如何通过套接字将 jFrame 与 jTable 一起传递?

java - 如何将 int 值 09 转换为 char 数组 {'0' ,'9' }?

java - 将 HTML 表格导出到 Excel - 使用 jQuery 或 Java

java - 具有类注册的工厂方法模式会产生空指针异常

java - 创建 TableModel 并动态填充 jTable

Java Swing : Draw a gameboard as a JButton grid backed by a 2D array of objects

java - 如何在 JTable 单元格中显示古吉拉特语文本?

java - 如何在 JTable Cell 中显示多行