📄 tooltipdemo.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 + -