⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tooltipdemo.java

📁 java2应用开发指南第一版
💻 JAVA
字号:
//TooltipDemo.java 
//用Window组件来制作工具提示帮助窗口
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class TooltipDemo extends Applet
{
	//Applet的初始化方法
    public void init()
    {
    	//创建三个要显示工具提示的Button
    	TooltipButton btnNew=new TooltipButton("新建");
    	TooltipButton btnOpen=new TooltipButton("打开");
    	TooltipButton btnSave=new TooltipButton("保存");
    	//把三个Button加入到Applet中并显示出来
    	this.add( btnNew );
    	this.add( btnOpen );
    	this.add( btnSave );
	}
}

class TooltipButton extends Button
{
	//保存工具提示帮助的文本的内容
	String strTooltip;
	//TooltipWindow工具提示的引用
	TooltipWindow wndToolkit;
	
	public TooltipButton(String strTooltipText )
	{
		//设置Button的标题
		super(strTooltipText);
		//构造Button要显示的提示帮助文本字符串
		this.strTooltip	= "这是个" + strTooltipText +"按钮的提示";
		//给Button添加鼠标监听事件
		this.addMouseListener( new MouseAdapter(){
			//监听鼠标的进入事件
			public void mouseEntered( MouseEvent event){
				//得到Button的引用,给内嵌类使用
				TooltipButton btnTooltip= TooltipButton.this;
				
				if( wndToolkit == null )
					wndToolkit=new TooltipWindow( btnTooltip, strTooltip );
				//获取Button在屏幕中的位置点
				Point ptLoc=getLocationOnScreen();
				//获取Button的大小
				Dimension dmSize= getSize();
				//设置工具提示帮助窗口的位置
				wndToolkit.setLocation( ptLoc.x,ptLoc.y + dmSize.height+2 );
				//显示工具提示帮助窗口
				wndToolkit.show();
			}
			//监听鼠标的退出事件
			public void mouseExited(MouseEvent event){
				if( wndToolkit != null && wndToolkit.isShowing() )
					wndToolkit.dispose();
			}
		});
	}
}

//封装显示工具帮助的窗口
class TooltipWindow extends Window
{
	//保存工具提示帮助的文本的内容
	private String strTooltipText;
	
	public TooltipWindow( Component comp, String strText )
	{
		super( getFrame(comp) );
		//设置显示工具帮助的文本
		this.strTooltipText = strText ;
		//设置前景色
		setForeground(SystemColor.textText);
		//设置背景色
		setBackground(SystemColor.info);
	}
	//绘制提示文本的窗口
	public void paint(Graphics g)
	{
		//获取窗体大小
		Dimension dmSize=this.getSize();
		//获取字体
		FontMetrics fm=g.getFontMetrics();
		//绘制工具提示的外围矩形
		g.drawRect(0,0,dmSize.width-1,dmSize.height-1);
		//绘制需要显示的工具提示的文本字符串
		g.drawString(strTooltipText,2,fm.getAscent()+2);
	}
	//显示工具帮助窗口
	public void show()
	{
		pack();
		super.show();
	}	
	//设置显示工具帮助的窗口的大小
	public Dimension getPreferredSize()
	{
		//获取字体的属性
		Graphics g= getGraphics();
		FontMetrics fm=g.getFontMetrics();
		//设置显示工具帮助的大小
		return new Dimension( fm.stringWidth(strTooltipText)+4,fm.getHeight()+4 );
	}
	static Frame getFrame(Component c)
	{
		Frame frame=null;
		while(  (c=c.getParent())!=null )
		{
			if( c instanceof Frame )
				frame=(Frame)c;
		}
		return frame;
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -