根据项目的需要,特点学习研究了下Java component setToolTipText多行显示的问题,最后找到方法是
用 HTML格式控制的方法, 一语中的就是用了HTML格式控制符号"<br>"特写此文,供大家交流学习详细测试实现方法件下 文 。
一:NEW一个HTML格式控制类,代码如下:
//START
package Com;
public class HtmlMultiLineControl {
private String strDest;
//上文
private final String strHtmlBegin =
"<html>"
+ "<bgcolor color=#000080>"
+"<font color=#0000cd >"
+"<b>";
//下文
private final String strHtmlEnd =
"</b>"
+"</font>"
+"</bgcolor>"
+"</html>";
public String CovertDestionString(String strDest){
this.strDest = strHtmlBegin + strDest + strHtmlEnd;
return this.strDest;
} }
//END
二:New一个测试界面类,代码如下:
//START
package GUI;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import Com.HtmlMultiLineControl;
public class ToolTipDemo extends JFrame {
private JLabel lblTest;
private JTextField textTest;
private JButton btnTest;
private String[] tipsArray = {"第一行","第二行","第三行"};
/**构造方法*/
public ToolTipDemo(){
CreateContence();
}
/*创建控件*/
public void CreateContence(){
String strDestTips = new String();
setSize(450, 300);
this.setLocation(this.getToolkit().getScreenSize().width / 2- this.getWidth() / 2,
this.getToolkit().getScreenSize().height/ 2 - this.getHeight() / 2);
this.setLayout(null);
lblTest = new JLabel("This is a ToolTipsText Wrap Test Label");
lblTest.setBounds(new Rectangle(100,50, 260,30));
lblTest.setToolTipText(getTips());//最终要显示提示信息
getContentPane().add(lblTest);
textTest = new JTextField("This is a ToolTipsText Wrap Test Text");
textTest.setBounds(new Rectangle(100,100, 260,30));
textTest.setToolTipText(getTips());
getContentPane().add(textTest);
btnTest = new JButton("This is a ToolTipsText Wrap Test Button");
btnTest.setBounds(new Rectangle(100,150, 260,30));
btnTest.setToolTipText(getTips());
getContentPane().add(btnTest);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/*获取提示信息*/
public String getTips(){
HtmlMultiLineControl hmlc = new HtmlMultiLineControl();
String strtemp = new String();
for(int i=0; i<tipsArray.length; i++){
if(i!= 0){
strtemp = strtemp + "<br>" ;//br:换行(HTML)
}
strtemp = strtemp + tipsArray[i];
}
//添加HTML格式控制
strtemp = hmlc.CovertDestionString(strtemp);
return strtemp;
}
public static void main(String[] args) {
ToolTipDemo tooltip = new ToolTipDemo();
}
}
//End
三:运行结果
效果明显。我只截了在Button上面的效果,其它LABEl,TEXT上面的效果请有兴趣者研究。
四:小节
当当然我这里只是要改变字体相关的效果,所以用HTML格式控制可以达到要求,
只要有的朋友需要更多的要求,建议可以研究下重写setToolTipText().
五:本文结束。