JLabel中的字体的问题。

时间:2023-02-05 20:35:23
怎样让JLabel(或者JTextField)中的文本字体为,下划线,删除线,上标,下标。

16 个解决方案

#1


该回复于2008-11-11 22:01:23被版主删除

#2


可以用HTML

new JLabel("<html><U>下划线</U><S>删除线</S><SUP>上标</SUP><SUB>下标</SUB></html>");

#3


程序运行前
     Font f = new Font(Font.DIALOG,Font.ITALIC+Font.BOLD,12);
     UIManager.put("Label.font", f);
先做出你需要的字体,然后放入UIManager中,
之后所有的JLabel的字体就都统一了

#4


引用 3 楼 cowputer 的回复:
程序运行前
Font f = new Font(Font.DIALOG,Font.ITALIC+Font.BOLD,12);
UIManager.put("Label.font", f);
先做出你需要的字体,然后放入UIManager中,
之后所有的JLabel的字体就都统一了


斜体 粗体,和斜体粗体混合可以实现。
现在需要 下划线,删除线,下标,上标。

#5


引用 2 楼 gtlang78 的回复:
可以用HTML

new JLabel(" <html> <U>下划线 </U> <S>删除线 </S> <SUP>上标 </SUP> <SUB>下标 </SUB> </html>");

果然是个办法,谢了。

有没有其他的方法,不是在初始化时,改变字体而是根据要求改变。
类似字体的设置, 可以随意改,而且,几种状态还可以有组合效果。 

#6


如果上面的办法可行的话,那么,你自己写个继承自JLabel的类,
自己用html来实现上面的组合不久可以了吗。

#7


up.
还有其他办法么.
没有就准备结贴了.哈.

#8


还有个办法就是先把你要的那种效果在可以实现的工具比如word里转成图片,然后在Label里加上这个图片
呵呵

#9


就是嘛,用HTML里面的标签不是很好实现嘛。不用那么麻烦的,呵呵……

#10


当你要改变的时候你就label.setText("html代码"); 就可以了,

#11


JLabel是支持html的
new JLabel(" <html> <U>下划线 </U> <S>删除线 </S> <SUP>上标 </SUP> <SUB>下标 </SUB> </html>");

#12


引用 8 楼 CTea321 的回复:
还有个办法就是先把你要的那种效果在可以实现的工具比如word里转成图片,然后在Label里加上这个图片
呵呵

hehe, 有创意,确实一个办法哈。
静态的可以,要动态的就不行了。可以随时改变哦。那随时调用图片。有些不妥吧

#13


引用 11 楼 jayray007 的回复:
JLabel是支持html的
new JLabel("  <html>  <U>下划线  </U>  <S>删除线  </S>  <SUP>上标  </SUP>  <SUB>下标  </SUB>  </html>");

这种方法只能是把状态组合的所有情况列出来,通过复杂的逻辑判断来实现。
如果动态的改变那这种标签就成数量级别的增加,而且多时,达不到自己想要的那种状态,也就是发生错误。

#14


只实现下划线:

public class JCustomLabel extends JLabel {
//构造函数自己从父类继承

//设置成下划线`
public JCustomLabel setUText(){
String str = this.getText();
//如果开始结束有<html></html>则删除,没实现
this.setText("<html><U>"+str+"</U></html>");
return this;
}
//追加下划线
public JCustomLabel appendUText(String appendStr){
String str = this.getText();
//如果开始结束有<html></html>则删除,没实现
this.setText("<html>"+str+"<U>"+appendStr+"</U></html>");
return this;
}
public static void main(String[] args) {
JCustomLabel label = new JCustomLabel("test");
label.setUText().appendUText("下划线").appendSText("删除线");
}
}

#15


动态的,就用html标签吧
自己写个类,或者方法

#16


受益匪浅。。。

#1


该回复于2008-11-11 22:01:23被版主删除

#2


可以用HTML

new JLabel("<html><U>下划线</U><S>删除线</S><SUP>上标</SUP><SUB>下标</SUB></html>");

#3


程序运行前
     Font f = new Font(Font.DIALOG,Font.ITALIC+Font.BOLD,12);
     UIManager.put("Label.font", f);
先做出你需要的字体,然后放入UIManager中,
之后所有的JLabel的字体就都统一了

#4


引用 3 楼 cowputer 的回复:
程序运行前
Font f = new Font(Font.DIALOG,Font.ITALIC+Font.BOLD,12);
UIManager.put("Label.font", f);
先做出你需要的字体,然后放入UIManager中,
之后所有的JLabel的字体就都统一了


斜体 粗体,和斜体粗体混合可以实现。
现在需要 下划线,删除线,下标,上标。

#5


引用 2 楼 gtlang78 的回复:
可以用HTML

new JLabel(" <html> <U>下划线 </U> <S>删除线 </S> <SUP>上标 </SUP> <SUB>下标 </SUB> </html>");

果然是个办法,谢了。

有没有其他的方法,不是在初始化时,改变字体而是根据要求改变。
类似字体的设置, 可以随意改,而且,几种状态还可以有组合效果。 

#6


如果上面的办法可行的话,那么,你自己写个继承自JLabel的类,
自己用html来实现上面的组合不久可以了吗。

#7


up.
还有其他办法么.
没有就准备结贴了.哈.

#8


还有个办法就是先把你要的那种效果在可以实现的工具比如word里转成图片,然后在Label里加上这个图片
呵呵

#9


就是嘛,用HTML里面的标签不是很好实现嘛。不用那么麻烦的,呵呵……

#10


当你要改变的时候你就label.setText("html代码"); 就可以了,

#11


JLabel是支持html的
new JLabel(" <html> <U>下划线 </U> <S>删除线 </S> <SUP>上标 </SUP> <SUB>下标 </SUB> </html>");

#12


引用 8 楼 CTea321 的回复:
还有个办法就是先把你要的那种效果在可以实现的工具比如word里转成图片,然后在Label里加上这个图片
呵呵

hehe, 有创意,确实一个办法哈。
静态的可以,要动态的就不行了。可以随时改变哦。那随时调用图片。有些不妥吧

#13


引用 11 楼 jayray007 的回复:
JLabel是支持html的
new JLabel("  <html>  <U>下划线  </U>  <S>删除线  </S>  <SUP>上标  </SUP>  <SUB>下标  </SUB>  </html>");

这种方法只能是把状态组合的所有情况列出来,通过复杂的逻辑判断来实现。
如果动态的改变那这种标签就成数量级别的增加,而且多时,达不到自己想要的那种状态,也就是发生错误。

#14


只实现下划线:

public class JCustomLabel extends JLabel {
//构造函数自己从父类继承

//设置成下划线`
public JCustomLabel setUText(){
String str = this.getText();
//如果开始结束有<html></html>则删除,没实现
this.setText("<html><U>"+str+"</U></html>");
return this;
}
//追加下划线
public JCustomLabel appendUText(String appendStr){
String str = this.getText();
//如果开始结束有<html></html>则删除,没实现
this.setText("<html>"+str+"<U>"+appendStr+"</U></html>");
return this;
}
public static void main(String[] args) {
JCustomLabel label = new JCustomLabel("test");
label.setUText().appendUText("下划线").appendSText("删除线");
}
}

#15


动态的,就用html标签吧
自己写个类,或者方法

#16


受益匪浅。。。