在JLable中加入文字和图片,如何实现在水平方向,一个左对齐,一个右对齐呢?
3条回答 默认 最新
- g_johnson_lee 2010-03-18 10:10关注
废话少说,见代码:
[code="java"]
package org.zergle.test;import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.geom.Rectangle2D;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;public class TestJLabelFrame extends JFrame {
XLabel lbl = new XLabel("内容");public TestJLabelFrame() { super(); JPanel container = (JPanel) this.getContentPane(); lbl.setIcon(new ImageIcon(this.getClass().getResource("icon.gif"))); container.add(lbl, BorderLayout.CENTER); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setSize(640, 480); } public static void main(String[] args) { new TestJLabelFrame().setVisible(true); }
}
class XLabel extends JLabel {
public XLabel() {} public XLabel(String text) { super(text); } public void paint(Graphics g) { String text = this.getText(); Icon icon = this.getIcon(); Rectangle2D bounds = this.getBounds(); FontMetrics fm = this.getFontMetrics(new Font("宋体", Font.PLAIN, 12)); Rectangle2D rect = fm.getStringBounds(text, 0, text.length(), g); int y = (int) (bounds.getHeight() - rect.getHeight()) / 2; g.drawString(text, 0, y); if (icon != null) { int x = (int) bounds.getWidth() - icon.getIconWidth(); y = (int) (bounds.getHeight() - icon.getIconHeight()) / 2; icon.paintIcon(this, g, x, y); } g.dispose(); }
}
[/code]哈哈,准备接分 :wink:
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
- ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
- ¥15 LLM accuracy检测
- ¥15 pycharm添加远程解释器报错
- ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
- ¥15 如何能达到用ping0.cc检测成这样?如图
- ¥15 关于#DMA固件#的问题,请各位专家解答!
- ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
- ¥20 微信小程序 canvas 问题
- ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?