社区
Java SE
帖子详情
怎样让Jlabel垂直显示文字
isly_sn
2010-02-13 07:58:39
如何让Jlabel垂直显示文字?,就比如这么显示:
新
年
快
乐
试过 new JLabel("<html>垂<br>直<br>显<br>示</html>")
但是感觉文字间距太大了,有没有别的方法?
...全文
286
6
打赏
收藏
怎样让Jlabel垂直显示文字
如何让Jlabel垂直显示文字?,就比如这么显示: 新 年 快 乐 试过 new JLabel("垂直显示") 但是感觉文字间距太大了,有没有别的方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ostholz
2010-02-19
打赏
举报
回复
效果
ostholz
2010-02-19
打赏
举报
回复
下面是我做过的实现,有左右两个竖排label,没有注释。 看懂了结贴给分啊。
private void drawLabel(Graphics g2d){
convertLabel();
// FontMetrics fm = getFontMetrics(new Font("Serif", Font.PLAIN,10));
FontMetrics fm = getFontMetrics(getFont());
int fontHeight = fm.getAscent()+fm.getDescent()-1;
int dy = width+topMargin+width/10;
int mengeLbl_y = getMengeLabel().getLocation().y;
g2d.setColor(Color.BLUE);
for(int i=0;i<convertedBelnumLabel.length;i++){
if(dy<mengeLbl_y)
g2d.drawString(convertedBelnumLabel[i], xForLinkLabel[i], dy);
dy+=fontHeight;
}
dy = width+topMargin+width/10;
g2d.setColor(Color.BLACK);
for(int i=0;i<convertedBezeichnungLabel.length;i++){
if(dy<mengeLbl_y)
g2d.drawString(convertedBezeichnungLabel[i], xForRightLabel[i], dy);
dy+=fontHeight;
}
}
private void convertLabel(){
int len = 0;
int baseX = 0;
char[] data;
char ch;
int maxWidth = 0;
Font f = getFont();
int fSize = f.getSize();
FontMetrics fm = getFontMetrics(new Font(f.getFontName(), f.getStyle(), fSize+1));
// for linkLabel
len = belnumLabel.length();
data = new char[len];
belnumLabel.getChars(0, len, data, 0);
convertedBelnumLabel = new String[len];
xForLinkLabel = new int[len];
for(int i=0;i<len;i++){
ch = data[i];
int width = fm.charWidth(ch);
if(width > maxWidth){
maxWidth = width;
}
convertedBelnumLabel[i] = new String(data, i, 1);
}
baseX = (width+2*maxWidth)/4-maxWidth/2;
for(int i=0;i<len;i++){
ch = data[i];
xForLinkLabel[i] = (maxWidth-fm.charWidth(ch))/2+baseX;
}
// for rightLabel
len = bezeichnungLabel.length();
data = new char[len];
bezeichnungLabel.getChars(0, len, data, 0);
convertedBezeichnungLabel = new String[len];
xForRightLabel = new int[len];
for(int i=0;i<len;i++){
ch = data[i];
int width = fm.charWidth(ch);
if(width > maxWidth){
maxWidth = width;
}
convertedBezeichnungLabel[i] = new String(data, i, 1);
}
baseX = width*3/4-maxWidth/2;
for(int i=0;i<len;i++){
ch = data[i];
xForRightLabel[i] = (maxWidth-fm.charWidth(ch))/2+ baseX;
}
}
njzdl
2010-02-16
打赏
举报
回复
引用 2 楼 lgg201 的回复:
Swing应该是支持css样式的...可以找找相关资料
who said?
可以考虑改用jpanel以及boxlayout来实现, 效果肯定让你满意
sd4324530
2010-02-14
打赏
举报
回复
怎么跟我的JAVA群里的同学问的问题一样,但是我也不知道怎么实现
goosman
2010-02-13
打赏
举报
回复
Swing应该是支持css样式的...可以找找相关资料
Inhibitory
2010-02-13
打赏
举报
回复
在paintComponent里进行手动绘制。
ocr识别java编程,辅助jar包
java处理ocr图像问题,图片
显示
和
文字
显示
用的
JLabel
:
JLabel
对象可以
显示
文本、图像或同时
显示
二者。可以通过设置
垂直
和水平对齐方式,指定标签
显示
区中标签内容在何处对齐。默认情况下,标签在其
显示
区内
垂直
居中对齐。默认情况下,只
显示
文本的标签是开始边对齐;而只
显示
图像的标签则水平居中对齐。
JAVA中如何设置
文字
在
Jlabel
正上方居中
显示
的方法
代码如下
Jlabel
jlabel
=new new
JLabel
(“杨文正”);
jlabel
.setVerticalTextPosition(
JLabel
.TOP);//
文字
垂直
对齐方式向上
jlabel
.setHorizontalTextPosition(
JLabel
.CENTER);//
文字
水平对齐方式居中
jlabel
.setIcon(icon); ...
Java GUI编程(2)---
JLabel
JLabel
对象创建完成后
显示
一个标签。 标签可以
显示
文本、图像,可设置
垂直
和水平对齐方式, 默认内
垂直
居中对齐。 1,只
显示
文本的标签是开始边对齐; 2,只
显示
图像的标签则水平居中对齐。 3,二者都
显示
,文本位于图像的结尾边上,文本和图像都
垂直
对齐。 构造方法
JLabel
()
JLabel
(String text)
JLabel
(String text, int horizon...
Swing 中基本组件(java)
Swing 中的组件列表 标签 Label用于
显示
文字
JLabel
l = new
JLabel
("
文字
"); //
文字
颜色 l.setFourground(Color.red); l.setBounds(50,50,280,30); 也可以通过
JLabel
显示
图片 java GUI
显示
图片是通过在label上设置图标实现的
JLabel
l = new
JLabel
(); //根据图片创建...
JLabel
JLabel
对象可以
显示
文本、图像或同时
显示
二者。可以通过设置
垂直
和水平对齐方式,指定标签
显示
区中标签内容在何处对齐。默认情况下,标签在其
显示
区内
垂直
居中对齐。默认情况下,只
显示
文本的标签是开始边对齐;而只
显示
图像的标签则水平居中对齐。 还可以指定文本相对于图像的位置。默认情况下,文本位于图像的结尾边上,文本和图像都
垂直
对齐。 构造方法介绍:
JLabel
() 创建无图像并且其标题为
Java SE
62,584
社区成员
307,504
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章