工具提示文本会根据文本框中的哪些单词而改变?

时间:2013-07-02 15:51:31

标签: java swing text tooltip

是否有可能使显示的工具提示在某些swing对象内的某些关键字时会发生变化?内容将由代码完全定义,因此我可以使用文本定位,如果这将有所帮助。感谢

编辑:

好的,具体来说我要做的是为文本创建一个自定义显示框以用作战斗日志。这将超越我的动画,如果你愿意,那就是hud。我在想的是,我可以使用工具提示来显示战斗计算背后的属性,同时为知道事情如何运作的人解开日志。

1 个答案:

答案 0 :(得分:3)

覆盖getToolTipText(...)。简单的例子:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.*;
import javax.swing.plaf.*;
import javax.swing.UIManager.*;


public class ToolTipPanel extends JPanel
{
    public ToolTipPanel()
    {
        setPreferredSize( new Dimension(200, 200) );
        setToolTipText("");
    }

    public void paintComponent(Graphics g)
    {
        g.setColor( Color.red );
        g.fillRect(0, 0, 100, 200);
        g.setColor( Color.blue );
        g.fillRect(100, 0, 100, 200);
    }

    public String getToolTipText(MouseEvent e)
    {
        if (e.getX() < 100)
            return "red";
        else
            return "blue";
    }

    public Point getToolTipLocation(MouseEvent e)
    {
        Point p = e.getPoint();
        p.y += 15;
        return p;

    }

    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        frame.getContentPane().add( new ToolTipPanel() );
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible(true);
    }
}

使用文本组件,您需要使用鼠标点和getViewToModel()方法从文档中获取文本。