如何设置JToolTip显示为多行? I want it so! thank you!my email address: [email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MultiLineToolTipExample extends JFrame { public MultiLineToolTipExample() { super("Multi-Line ToolTip Example"); JButton button = new JButton ("Hello, world") { public JToolTip createToolTip() { MultiLineToolTip tip = new MultiLineToolTip(); tip.setComponent(this); return tip; } }; button.setToolTipText("Hello\nworld"); getContentPane().add(button); } public static void main (String args[]) { MultiLineToolTipExample f = new MultiLineToolTipExample(); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setSize (300, 100); f.show(); }}import java.awt.*;import javax.swing.*;public class MultiLineToolTip extends JToolTip { public MultiLineToolTip() { setUI(new MultiLineToolTipUI()); }}import java.io.*;import java.util.*;import java.awt.*;import javax.swing.*;import javax.swing.plaf.metal.*;/** * @version 1.0 11/09/98 */public class MultiLineToolTipUI extends MetalToolTipUI { private String[] strs; private int maxWidth = 0; public void paint(Graphics g, JComponent c) { FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(g.getFont()); Dimension size = c.getSize(); g.setColor(c.getBackground()); g.fillRect(0, 0, size.width, size.height); g.setColor(c.getForeground()); if (strs != null) { for (int i=0;i<strs.length;i++) { g.drawString(strs[i], 3, (metrics.getHeight()) * (i+1)); } } } public Dimension getPreferredSize(JComponent c) { FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(c.getFont()); String tipText = ((JToolTip)c).getTipText(); if (tipText == null) { tipText = ""; } BufferedReader br = new BufferedReader(new StringReader(tipText)); String line; int maxWidth = 0; Vector v = new Vector(); try { while ((line = br.readLine()) != null) { int width = SwingUtilities.computeStringWidth(metrics,line); maxWidth = (maxWidth < width) ? width : maxWidth; v.addElement(line); } } catch (IOException ex) { ex.printStackTrace(); } int lines = v.size(); if (lines < 1) { strs = null; lines = 1; } else { strs = new String[lines]; int i=0; for (Enumeration e = v.elements(); e.hasMoreElements() ;i++) { strs[i] = (String)e.nextElement(); } } int height = metrics.getHeight() * lines; this.maxWidth = maxWidth; return new Dimension(maxWidth + 6, height + 4); }} java文件写入怎样换行 classpath的功能 我无法打开applet小程序(新手,没有分,不好意思) JDIC ! JDIC ! Java 嵌入浏览器 我用jdk1.5.0_05,编译时类出现问题?谢谢! ¥¥¥¥¥¥¥ flyxxxxx(灭神) 进来¥¥¥¥¥¥¥¥¥给错分了,TNND,重开 java中如何停止一个启动后的线程? 简单算法求助 求一个思路,关于界面的问题 该怎么办呀 关于带Swing的Applet在IE中浏览问题 关于http://developer.java.sun.com
import java.awt.event.*;
import javax.swing.*;public class MultiLineToolTipExample extends JFrame {
public MultiLineToolTipExample() {
super("Multi-Line ToolTip Example");
JButton button = new JButton ("Hello, world") {
public JToolTip createToolTip() {
MultiLineToolTip tip = new MultiLineToolTip();
tip.setComponent(this);
return tip;
}
};
button.setToolTipText("Hello\nworld");
getContentPane().add(button);
} public static void main (String args[]) {
MultiLineToolTipExample f = new MultiLineToolTipExample();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize (300, 100);
f.show();
}
}import java.awt.*;
import javax.swing.*;public class MultiLineToolTip extends JToolTip {
public MultiLineToolTip() {
setUI(new MultiLineToolTipUI());
}
}import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.metal.*;/**
* @version 1.0 11/09/98
*/
public class MultiLineToolTipUI extends MetalToolTipUI {
private String[] strs;
private int maxWidth = 0; public void paint(Graphics g, JComponent c) {
FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(g.getFont());
Dimension size = c.getSize();
g.setColor(c.getBackground());
g.fillRect(0, 0, size.width, size.height);
g.setColor(c.getForeground());
if (strs != null) {
for (int i=0;i<strs.length;i++) {
g.drawString(strs[i], 3, (metrics.getHeight()) * (i+1));
}
}
} public Dimension getPreferredSize(JComponent c) {
FontMetrics metrics = Toolkit.getDefaultToolkit().getFontMetrics(c.getFont());
String tipText = ((JToolTip)c).getTipText();
if (tipText == null) {
tipText = "";
}
BufferedReader br = new BufferedReader(new StringReader(tipText));
String line;
int maxWidth = 0;
Vector v = new Vector();
try {
while ((line = br.readLine()) != null) {
int width = SwingUtilities.computeStringWidth(metrics,line);
maxWidth = (maxWidth < width) ? width : maxWidth;
v.addElement(line);
}
} catch (IOException ex) {
ex.printStackTrace();
}
int lines = v.size();
if (lines < 1) {
strs = null;
lines = 1;
} else {
strs = new String[lines];
int i=0;
for (Enumeration e = v.elements(); e.hasMoreElements() ;i++) {
strs[i] = (String)e.nextElement();
}
}
int height = metrics.getHeight() * lines;
this.maxWidth = maxWidth;
return new Dimension(maxWidth + 6, height + 4);
}
}