当前位置: 首页 > news >正文

java去掉结尾的空格_如何从Java中显示的字符串末尾删除空格?

您可以使用TextLayout来获得更好的宽度计算.

在下面的示例中,您可以看到使用TextLayout和FontMetrics之间的不同:

import javax.swing.*;

import java.awt.*;

import java.awt.font.*;

import java.awt.geom.*;

public class DrawTest extends JPanel

{

String text;

public DrawTest(String text)

{

this.text = text;

// setFont( new Font("Arial",Font.PLAIN,24) );

setFont( new Font("Monospaced",24) );

}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

Graphics2D g2d = (Graphics2D)g;

g2d.setFont( getFont() );

g2d.setPaint(Color.RED);

// Draw text using FontMetrics

FontMetrics fm = g2d.getFontMetrics();

Rectangle2D rect = fm.getStringBounds(text,g2d);

rect.setRect(rect.getX() + 100,rect.getY() + 50,rect.getWidth(),rect.getHeight());

g2d.draw(rect);

// Draw text using TextLayout

g2d.setPaint(Color.BLACK);

Point2D loc = new Point2D.Float(100,50);

FontRenderContext frc = g2d.getFontRenderContext();

TextLayout layout = new TextLayout(text,getFont(),frc);

layout.draw(g2d,(float)loc.getX(),(float)loc.getY());

Rectangle2D bounds = layout.getBounds();

bounds.setRect(bounds.getX()+loc.getX(),bounds.getY()+loc.getY(),bounds.getWidth(),bounds.getHeight());

g2d.draw(bounds);

}

private static void createAndShowUI()

{

DrawTest text = new DrawTest("This is some ugly test i");

JFrame frame = new JFrame("SSCCE");

frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

frame.add( text );

frame.setSize(400,200);

frame.setLocationByPlatform( true );

frame.setVisible( true );

}

public static void main(String[] args)

{

EventQueue.invokeLater(new Runnable()

{

public void run()

{

createAndShowUI();

}

});

}

}

你也不应该:

>设置首选大小.相反,您应该重写getPreferredSize()方法以返回大小

>在绘画方法中设置字体.所有组件都支持setFont()方法.所以只需在构造函数中设置Font.

相关文章:

  • java最大回文字符串长度_Leet Code 5 最长回文子串 - Java
  • java泡沫_Java初认识--函数和数组
  • java虚拟机内存溢出的三个原因_JVM发生内存溢出的原因分析及解决方案
  • mysql更新多个字段php_PHP:如果语句无意中导致多个MySQL列更新?
  • properties java jar_propertiesutil jar包
  • python段落注释的语法格式是_Python 基础语法
  • python读取xml配置_python解析xml配置文件
  • java 接口数据类型_Java中的基本数据类型与引用数据类型
  • java 红包接口开发_java调用微信现金红包接口的心得与体会总结
  • java项目中学到了什么_我们能从Java的HelloWorld中学到什么?
  • js java md5加密_MD5加密 (java、js)
  • junit mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
  • java最简单的算术程序_java – ANTLR4访问者模式简单的算术示例
  • java版我的世界有溺尸_我的世界溺尸怎么找
  • mysql制作html静态网页6_PHP生成HTML静态页面实例代码
  • 【css3】浏览器内核及其兼容性
  • Angular数据绑定机制
  • CSS实用技巧
  • Java到底能干嘛?
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • MySQL几个简单SQL的优化
  • MySQL数据库运维之数据恢复
  • Object.assign方法不能实现深复制
  • Shell编程
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • vue中实现单选
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 目录与文件属性:编写ls
  • 嵌入式文件系统
  • 全栈开发——Linux
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 世界上最简单的无等待算法(getAndIncrement)
  • gunicorn工作原理
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • # 数论-逆元
  • #162 (Div. 2)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $.ajax()方法详解
  • (JS基础)String 类型
  • (力扣)循环队列的实现与详解(C语言)
  • (小白学Java)Java简介和基本配置
  • .NET Framework .NET Core与 .NET 的区别
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET开发人员必知的八个网站
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET企业级应用架构设计系列之结尾篇
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @media screen 针对不同移动设备
  • @Repository 注解
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [CSS] - 修正IE6不支持position:fixed的bug