`
withyou
  • 浏览: 454752 次
社区版块
存档分类
最新评论

SWT中获取字符串占用像素数

阅读更多
可以使用GC类的getAdvanceWidth(char ch)获取当前字符所占的像素宽度.

getAdvanceWidth

          public int getAdvanceWidth(char ch)

Returns the advance width of the specified character in the font which is currently selected into the receiver.

The advance width is defined as the horizontal distance the cursor should move after printing the character in the selected font.

Parameters:
ch - the character to measure
Returns:
the distance in the x direction to move past the character before painting the next
Throws:
SWTException -
  • ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed

可以如下面的程序使用该函数:

public static int getStringWidth(String string, Control control) {

   
int width = 0;
    GC gc 
= new GC(control);
    
for (int i = 0; i < string.length(); i++{
        
char c = string.charAt(i);
        width 
+= gc.getAdvanceWidth(c);
    }


    gc.dispose();
    
return width;
}

或者更通用的,其中string是目标字符串,font是你要设给字符串的字体对象:

public static int getStringWidth(String string, Font font){
    
int width = 0;
    Shell shell 
= new Shell();
    Label label 
= new Label(shell, SWT.NONE);
    label.setFont(font);
    GC gc 
= new GC(label);
    
for(int i=0;i<string.length();i++){
          
char c = string.charAt(i);
          width 
+= gc.getAdvanceWidth(c);
    }

    gc.dispose();
    shell.dispose();
    
return width;
}


Hexise 2006-12-29 11:21 发表评论
分享到:
评论
1 楼 javer 2010-10-22  
灰常感谢!

相关推荐

    SWT C++ OPENCV 像素点文字检测

    项目中提供的SWT文件可能包括源代码、测试图像和结果展示,通过运行这些代码,可以观察SWT在像素点文字检测上的具体表现,以及与基于区域方法的差异。 总结,SWT C++ OPENCV像素点文字检测项目旨在探索和比较两种...

    在SWING、SWT中嵌入浏览器

    这篇博客文章“在SWING、SWT中嵌入浏览器”就探讨了如何在Java应用中实现这一功能。 首先,SWING是Java Foundation Classes (JFC)的一部分,提供了丰富的组件和布局管理器来构建复杂的用户界面。尽管SWING本身并不...

    SWT中文教程.rar

    SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库,它是Eclipse项目的一部分。本教程将深入讲解SWT的基本概念、组件使用以及实际开发中的应用技巧。以下是对SWT中文教程的...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    SWT(Standard Widget Toolkit)是Java编程环境中一个用于创建图形用户界面(GUI)的开源库,它是Eclipse项目的一部分。标题“swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位”表明这个压缩包包含了适用于...

    使Excel嵌入到SWT窗口中

    使Excel嵌入到SWT窗口中 知识点一:Eclipse版本和jdk版本的选择 在本例中,我们使用的是Eclipse 3.3.1版本和jdk 5.0版本。Eclipse是一个开源的集成开发环境(IDE),它支持多种编程语言,包括Java、C++、Python等...

    SWT 中嵌入Word 控件应用

    这篇博客"SWT中嵌入Word控件应用"可能就是讲述如何在Java SWT界面中集成Word编辑功能,使得用户可以直接在应用程序内部创建、编辑和查看Word文档。 SWT是Eclipse开源项目的一部分,它为Java开发者提供了一套用于...

    SWT实现文字区域提取

    在图像分析中,尤其是针对文档图像、车牌图像或包含大量文本的图像,SWT算法能有效地识别出图像中的字符和线条,为后续的文字识别(OCR)提供前期处理。 该算法的基本思想是基于文字笔画的宽度特性:文字通常由具有...

    SWT源码 swt.jar

    SWT源码的获取和分析对于开发者来说非常有价值,因为它可以深入理解其工作原理,自定义组件或优化应用程序。 "swt.jar"文件是SWT库的二进制版本,包含了运行SWT应用所需的类和资源。这个jar包通常会被Java项目引用...

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT插件中文教程SWT常用方法

    SWT(Standard Widget Toolkit)是Java编程环境中用于创建图形用户界面(GUI)的一种开源库,它是Eclipse项目的一部分。SWT提供了与操作系统本机UI组件的直接交互,从而能够创建性能高效、外观与操作系统的原生应用...

    swt/Jface中文教程

    ### SWT/JFace中文教程知识点详解 #### 1.1 SWT/JFace概览 - **SWT与JFace的目的**:SWT(Standard Widget Toolkit)和JFace是Eclipse平台提供的两个核心工具包,用于构建高性能的图形用户界面(GUI)。SWT主要...

    SWT中文手册

    非常不错的java swt 中文文档

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    在任何基于SWT的Java项目中,首要任务就是将SWT JAR文件添加到项目的Classpath中。这一步骤确保了编译器能够识别SWT类和方法。具体操作如下: - **创建Java项目**:首先,在IDE中创建一个新的Java项目。 - **指定...

    字符串格式小工具

    用于在编程过程中快速验证String.format()方法和String.matches()方法的小工具。提供源代码。其中的SWT包需要64位环境。如果需要在32位环境下运行,可以使用32位的SWT包代替

    SWT Table单元格编辑功能

    其中,`Table`控件是SWT中最常用的数据展示组件之一,尤其适用于展示表格形式的数据。本文将深入探讨SWT `Table`控件中的单元格编辑功能,并通过实例代码进行详细解析。 #### 1. 创建TableEditor `TableEditor`是...

    java SWT简单小工具

    Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种库,它是Eclipse基金会的一部分。SWT提供了与操作系统原生界面元素直接交互的能力,使得Java应用能够拥有更接近本地应用的外观和...

    SWT JFace 按键、事件、监听

    本文将详细介绍SWT中的按键及其对应的常量表、`KeyEvent`事件和`VerifyEvent`事件的相关知识,并通过示例进行说明。 #### 按键与对应的常量表 SWT定义了一系列的常量来表示不同的按键,这些常量通常用于按键事件的...

    swt教程 有关SWT怎么应用

    在本文中,我们将深入探讨SWT(Standard Widget Toolkit)的应用,以及如何在Java应用程序中使用它。SWT是由IBM公司为Eclipse集成开发环境设计的一种图形用户界面(GUI)工具包,它通过JNI(Java Native Interface)...

    swt资源释放问题

    但是, SWT 中的资源释放问题是一件棘手的事情。如果不正确地释放资源,可能会导致内存泄露、程序崩溃等问题。下面,我们将详细介绍 SWT 中的资源释放问题。 一、Display 实例的创建和释放 在 SWT 中,Display ...

    java界面库swt.jar 4.911

    下载编译的SWT库,版本号4.911,包含多个版本: org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.arm org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk....

Global site tag (gtag.js) - Google Analytics