//自己写一个jlable类,可以加下划线,但是下划线的长度=文字的长度长,在想想。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.text.*;class DisplayPanel extends JLabel{
String text ="2D Text!";
AttributedString attribString;
AttributedCharacterIterator attibCharIterator;
public DisplayPanel(String texts){
int index = text.indexOf(texts);
int length = texts.length();
attribString = new AttributedString(text);
attribString.addAttribute(TextAttribute.UNDERLINE,TextAttribute.UNDERLINE_ON,index,index+length);
}public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 =(Graphics2D)g;
attibCharIterator = attribString.getIterator();
FontRenderContext frc = new FontRenderContext(null,false,false);
TextLayout layout = new TextLayout(attibCharIterator,frc);
layout.draw(g2,100,100);
}
}public class UnderLine extends JFrame{
public UnderLine(){
getContentPane().add(new DisplayPanel("Text"));
setVisible(true);
setSize(new Dimension(150,150));
this.addWindowListener (new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
pack();
}
public static void main(String args[]){
UnderLine f = new UnderLine();
f.show();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.text.*;class DisplayPanel extends JLabel{
String text ="2D Text!";
AttributedString attribString;
AttributedCharacterIterator attibCharIterator;
public DisplayPanel(String texts){
int index = text.indexOf(texts);
int length = texts.length();
attribString = new AttributedString(text);
attribString.addAttribute(TextAttribute.UNDERLINE,TextAttribute.UNDERLINE_ON,index,index+length);
}public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 =(Graphics2D)g;
attibCharIterator = attribString.getIterator();
FontRenderContext frc = new FontRenderContext(null,false,false);
TextLayout layout = new TextLayout(attibCharIterator,frc);
layout.draw(g2,100,100);
}
}public class UnderLine extends JFrame{
public UnderLine(){
getContentPane().add(new DisplayPanel("Text"));
setVisible(true);
setSize(new Dimension(150,150));
this.addWindowListener (new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
pack();
}
public static void main(String args[]){
UnderLine f = new UnderLine();
f.show();
}
}
解决方案 »
- 关于hibernate缓存
- 字符串截取成数组的问题,在线等
- Frame类的继承问题
- java中怎么存储和读取CLOB字段?给个例子
- 一道double hashing面试测验题,小弟不会,巨汗,望高手相救
- [求助]继续向大家请教(初学者提问)
- 有中程,高程基础,学习thingking in java要多少时间?
- java语言中,表达式”abc”和new String(“abc”)的区别在那里?
- 为什么用new socket(主机名,端口号)的方法连接不上用serversocket(端口号)的主机
- 跟大家分享一个巧妙的算法实现
- class和他的实例变量的范围的问题。
- 刚学习Java,请教关于Java的Application代码编写问题。
另外,JTable组件有问题吗?怎么在我的程序中不显示出来!
如果是的话,可以解决一部分问题,但是没有很好的解决。
jtable没有问题。你在看看程序中是否有错。