JToolTip鏄寚褰撻紶鏍囧仠鐣欏湪涓涓帶浠朵笂鏃舵樉紺虹殑涓涓寘鍚浉鍏充俊鎭殑鏂規錛屽叾涓彲浠ヤ嬌鐢?/span>setToolTipText()鏂規硶鏉ヨ緗叾涓殑鍐呭錛岃繖閲屽彲浠ヤ嬌鐢?/span>HTML璇█鏉ュ疄鐜版洿澶氱殑鏁堟灉錛堟崲琛屻佽〃鏍箋佸浘鐗囩瓑錛夛紝鏄劇ず鍐呭榪樻槸寰堝鐨勩備笅闈㈡槸JDK婧愪唬鐮侊細
public void setToolTipText(String text) {
String oldText = getToolTipText();
putClientProperty(TOOL_TIP_TEXT_KEY, text);
ToolTipManager toolTipManager = ToolTipManager.sharedInstance();
if (text != null) {
if (oldText == null) {
toolTipManager.registerComponent(this);
}
} else {
toolTipManager.unregisterComponent(this);
}
}
浠庝笂闈唬鐮佸彲浠ョ湅鍑猴紝榪欓噷鏈変竴涓?/span>putClientProperty鏂規硶錛岀敤鏉ヨ緗?/span>TOOL_TIP_TEXT_KEY鐨勫睘鎬у間負text錛堣繖濂藉儚鏄釜鍝堝笇琛ㄧ殑鏍峰瓙錛夈?/span>oldText鍏堜粠getToolTipText()鏂規硶涓彇錛屽鏋滃彇鍒扮殑鏄┖鐨勶紙null錛夊茍涓斾紶榪涙潵鐨?/span>text涓嶄負絀猴紝灝辨敞鍐岀粰榪欎釜緇勪歡涓涓?/span>ToolTip銆?/span>
榪欎釜鎺т歡鏄潪甯告湁鐢ㄧ殑錛屽叾涓?/span>String getToolTipText(MouseEvent)鏄瘡涓?/span>JComponent閮藉疄鐜扮殑鏂規硶錛岀敤鏉ヨ幏鍙?/span>JToolTip鎺т歡鏄劇ず鐨勫唴瀹癸紝姝ゆ柟娉曢粯璁?/span>JDK浠g爜涓猴細
public String getToolTipText() {
return (String)getClientProperty(TOOL_TIP_TEXT_KEY);
}
灝辨槸浠?/span>TOOL_TIP_TEXT_KEY灞炴ф妸鍊煎彇鍑烘潵浣滀負榪斿洖鍊箋傚湪ToolTipManager鐨?/span>show鏂規硶涓紝灝辨湁榪欐牱涓鍙ワ細
toolTipText = insideComponent.getToolTipText();
榪欐牱灝辮鏄庝簡濡傛灉緇勪歡閲嶈澆浜?/span>getToolTipText()鏂規硶錛屽氨鍙互鍦ㄦ樉紺?/span>ToolTip鐨勬椂鍊欐寚瀹氬唴瀹逛簡銆傚鏋滆鍦ㄦ帶浠剁殑涓嶅悓浣嶇疆鏄劇ず涓嶅悓鐨?/span>ToolTip錛岃閲嶈澆public String getToolTipText(MouseEvent event)鏂規硶錛屼笅闈㈡槸ToolTipManager綾誨鐞嗛紶鏍囩Щ鍔ㄧ殑浠g爜錛?/span>
public void mouseMoved(MouseEvent event) {
if (tipShowing) {
checkForTipChange(event);
}
else if (showImmediately) {
JComponent component = (JComponent)event.getSource();
toolTipText = component.getToolTipText(event);
if (toolTipText != null) {
preferredLocation = component.getToolTipLocation(event);
mouseEvent = event;
insideComponent = component;
exitTimer.stop();
showTipWindow();
}
}
else {
// Lazily lookup the values from within insideTimerAction
insideComponent = (JComponent)event.getSource();
mouseEvent = event;
toolTipText = null;
enterTimer.restart();
}
}
鍔犱寒鏄劇ず鐨勫氨鏄嬌鐢ㄤ簡閲嶈澆鏂規硶鐨勫湴鏂癸紙榪樻湁鍏朵粬涓浜涘湴鏂癸紝榪欓噷娌″叏鍒楋級銆?/span>
涓婇潰鐨勯昏緫鍙兘鏈変簺娣蜂貢錛屼富瑕佹槸璇村嚑涓被涔嬮棿鐨勫叧緋伙紙JComponent銆?/span>JToolTip鍜?/span>ToolTipManager涓変釜綾伙級錛屽鏋滆鍒╃敤SWING鏄劇ずToolTip錛屽彲浠ュ涓婇潰鐨勭被鏂規硶榪涜閲嶈澆鎴栧綾昏繘琛岀戶鎵挎潵杈懼埌鑷繁鎵闇瑕佺殑鏁堟灉銆備緥濡傦細
private class TipPanel extends JPanel
{
public TipPanel()
{
this.setSize(300, 300);
this.setBorder(new javax.swing.border.SoftBevelBorder (javax.swing.border.BevelBorder.RAISED));
}
public String getToolTipText(MouseEvent event)
{
return event.getPoint().toString();
}
}
灝遍噸杞戒簡JComponent鐨?/span>getToolTipText(MouseEvent)鏂規硶錛岃繖鏍峰氨鍙互鍦ㄦJPanel涓Щ鍔ㄩ紶鏍囩殑鏃跺欑湅鍒版彁紺烘涓殑鍙樺寲浜嗐?/span>