如何将气球提示添加到 JTable 中的单元格,其行为类似于工具提示



我想将气球提示添加到JTable中的Cell中,其行为就像Tooltips。我的意思是当鼠标进入Cell时,它会在一段时间后出现和消失(与Tooltips相同,但不是Tooltip)。我试过这个,但没有按预期为我工作。

@Override
public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    final JLabel lable = new JLabel(value.toString());
    EdgedBalloonStyle style = new EdgedBalloonStyle(new Color(255, 253, 245),
            new Color(64, 64, 64));
    BalloonTip tooltipBalloon = new BalloonTip(lable, new JLabel(value.toString()), style, new LeftAbovePositioner(15, 10), null);
    ToolTipUtils.balloonToToolTip(tooltipBalloon, 400, 2000);
    return lable;
}

这什么也没做。我也试过这个

@Override
public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    final JLabel lable = new JLabel(value.toString());
    EdgedBalloonStyle style = new EdgedBalloonStyle(new Color(255, 253, 245), new Color(64, 64, 64));
    TablecellBalloonTip tcb = new TablecellBalloonTip(table, new JLabel(value.toString()),
            row, column, style, BalloonTip.Orientation.LEFT_ABOVE,
            BalloonTip.AttachLocation.ALIGNED, 30, 10, false);
    return lable;
}

这只是Balloon Tip的工作,而不是我想要的。有什么建议吗?

我认为问题是您将气球尖端附加到新创建的 JLabel 上......

。尝试将其添加到渲染的CellCopmponent中:

@Override
public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int column) {
    final JLabel lable = new JLabel(value.toString());
    EdgedBalloonStyle style = new EdgedBalloonStyle(new Color(255, 253, 245), new Color(64, 64, 64));
    //look, here is your mistake: you append it onto a new JLabel
    //TablecellBalloonTip tcb = new TablecellBalloonTip(table, 
    //     new JLabel(value.toString()), row, column, style, 
    //      BalloonTip.Orientation.LEFT_ABOVE,
    //      BalloonTip.AttachLocation.ALIGNED, 30, 10, false);
    //instead append it on your rendered Component
    TablecellBalloonTip tcb = new TablecellBalloonTip(table, 
        lable, // !!here!!
        row, column, style, BalloonTip.Orientation.LEFT_ABOVE,
        BalloonTip.AttachLocation.ALIGNED, 30, 10, false);
    return lable;
}

我希望这能奏效...

相关内容

  • 没有找到相关文章

最新更新