Java JLabel与J中的文本不一致
我有一个非常恼人的情况。我有一个插入了文本的JTextPane。除了文本之外,还有jlabel等链接。下面是一个快照: 现在的问题是:为什么JLabel(一个HTML链接)与同一行上的文本不平行?略低于。 文本为“Calibri”,字体为14。JLabel:Java JLabel与J中的文本不一致,java,swing,Java,Swing,我有一个非常恼人的情况。我有一个插入了文本的JTextPane。除了文本之外,还有jlabel等链接。下面是一个快照: 现在的问题是:为什么JLabel(一个HTML链接)与同一行上的文本不平行?略低于。 文本为“Calibri”,字体为14。JLabel: label.setForeground(Color.blue); label.setFont(new Font("Check",Font.BOLD,14)); makeLinkable(label,
label.setForeground(Color.blue);
label.setFont(new Font("Check",Font.BOLD,14));
makeLinkable(label, new LinkMouseListener());
请帮忙。JLabel后面的链接是:
看看JComponent#setAlignmentY(…):
看起来上面提到的html与快照上的不一样。快照上的
a
标记中的值是2012-10-5时间13-52-1
,但不是file:///C:/Users/Jatin/Documents/NetBeansProjects/ImageRename/log/2012-10-5%20Time%2013-52-1.csv
。基本相同,只是文本不同。图片取自不同的跑步路线。谢谢。那么,可能是布局问题。您能提供一个简单的运行示例吗?实际上,html代码中似乎有
标记。请参见此。
import java.awt.*;
import javax.swing.*;
public class BaselineTest {
public JComponent makeUI() {
JLabel label1 = makeLabel();
JLabel label2 = makeLabel();
String s = "For detailed infomation refer: ";
JTextPane textPane = new JTextPane();
textPane.replaceSelection(s);
textPane.insertComponent(label1);
Dimension d = label2.getPreferredSize();
int baseline = label2.getBaseline(d.width, d.height);
label2.setAlignmentY(baseline/(float)d.height);
textPane.replaceSelection("\n\n"+s);
textPane.insertComponent(label2);
return new JScrollPane(textPane);
}
private static JLabel makeLabel() {
JLabel label = new JLabel("2012-10-05");
label.setForeground(Color.BLUE);
label.setOpaque(false);
return label;
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new BaselineTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}