社区
Java SE
帖子详情
怎样让Jlabel垂直显示文字
isly_sn
2010-02-13 07:58:39
如何让Jlabel垂直显示文字?,就比如这么显示:
新
年
快
乐
试过 new JLabel("<html>垂<br>直<br>显<br>示</html>")
但是感觉文字间距太大了,有没有别的方法?
...全文
307
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里进行手动绘制。
Java用
JLabel
调用
显示
windows字体美化窗口.rar
Java调用windows字体美化窗口,
显示
多种字体,用
JLabel
实现,可以很方便 的调用宋体、黑体、Sanf等多种系统字体,轻松改变窗口界面中的字体风格,从而起到美化窗口界面的作用。代码是这样的: //字体数组: ...
java
JLabel
实例
Java中的
JLabel
是一个非常重要的组件,它用于在用户界面中
显示
文本、图像或者组合文本与图像。在Swing库中,
JLabel
是JComponent的子类,提供了多种方式来展示信息,包括简单文本、HTML文本以及图标。在这个“java ...
java
文字
垂直
排列
在Java编程语言中,实现
文字
垂直
排列是一种常见的需求,特别是在创建复杂的用户界面或者图形化输出时。本主题将深入探讨如何在Java中实现这一功能,同时也会提及与之相关的源码和工具。 首先,让我们理解Java中的...
设计图形界面标签和按钮组件PPT学习教案.pptx
JLabel
是一个基本的组件,用于
显示
文字
或者图标。
JLabel
的构造方法有多种,例如: *
JLabel
():创建无图像并且其标题为空字符串的
JLabel
。 *
JLabel
(Icon image):创建具有指定图像的
JLabel
实例。 *
JLabel
...
文字
跑马灯与信息窗口
2. 设置
JLabel
的
垂直
对齐方式为顶部,以便文本能从底部开始滚动。 3. 使用javax.swing.Timer类创建一个定时器,设定周期性事件,如每10毫秒移动文本。 4. 在定时器的actionPerformed方法中,改变
JLabel
的text属性,...
Java SE
62,624
社区成员
307,283
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章