小编ete*_*00b的帖子

如何在单元格编辑开始时关闭表格中的所有工具提示?

我通过覆盖JTable继承的JComponent方法在我的JTable中启用了工具提示:

public String getToolTipText(MouseEvent e) { ... }
Run Code Online (Sandbox Code Playgroud)

现在,假设用户在一个单元格上盘旋,出现工具提示,然后他开始编辑单元格,我想强行关闭工具提示.

目前,工具提示只是挂起,直到我使用ToolTipManager #setDismissDelay指定的值到期.工具提示有时会模糊正在编辑的单元格的视图,这就是为什么我想在表格上的任何单元格进入编辑模式时忽略它.

我尝试了以下方法(这是伪代码)

public String getToolTipText(MouseEvent e)
{
    if(table-is-editing)
        return null;
    else
        return a-string-to-display-in-the-tooltip;
}
Run Code Online (Sandbox Code Playgroud)

当然,这只会在编辑模式下显示表格的工具提示非常好.我知道这不起作用,但更多的是在黑暗中拍摄.

java swing jtable tooltip

4
推荐指数
2
解决办法
1987
查看次数

单击表格右侧时如何清除表格选择

我有一个JTable,它存放在一个滚动窗格中,而滚动窗格又位于一个嵌入JFrame的面板中.如果JFrame被扩展,那么下面和JTable的右边都有空白空间.

如果用户在表格下方,表格下方或表格右侧点击,我想清除表格上的选择.

为了在用户点击表格时清除选择,我配置表格以填充滚动窗格视口的高度,并向表格添加了一个MouseListener,这样当用户点击表格下方时,"rowAtPoint"返回 - 1,然后我清除选择.但是,这不适用于表格的RHS.该表甚至没有收到这些鼠标事件.我应该如何检测JTable右侧的点击并清除表格上的选择?见下面的代码.请注意,我并不打算让代码变得漂亮,并以"正确的方式"做事.我的重点只是创建一个说明问题的SSCCE.:)

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class TableTest {
    public static void main(String args[]) {
        JFrame f = new JFrame();
        JPanel p = new JPanel(new BorderLayout());
        JScrollPane sp = new JScrollPane();
        final JTable t = new JTable(5,5);
        t.setFillsViewportHeight(true);
        t.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

        for(int i = 0; i < 5; i++) {
            t.getColumnModel().getColumn(i).setWidth(50);
            t.getColumnModel().getColumn(i).setMaxWidth(75);
        }
        t.addMouseListener(new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent e) {
                int row = t.rowAtPoint(e.getPoint());
                if(row == …
Run Code Online (Sandbox Code Playgroud)

java swing focus

4
推荐指数
1
解决办法
4239
查看次数

标签 统计

java ×2

swing ×2

focus ×1

jtable ×1

tooltip ×1