SWT从浏览器获取默认字体

时间:2015-03-31 08:32:49

标签: java fonts swt

如何根据org.eclipse.swt.browser.Browser的当前操作系统获取默认浏览器字体?

例如,在Windows上,浏览器使用" Times New Roman"。

1 个答案:

答案 0 :(得分:1)

使用的默认字体取决于浏览器小部件当前使用的呈现引擎(IE,Mozilla,Webkit)。

由于Browser#getFont()没有反映这一点,因此您只能解决此限制。一种可能的方法是让浏览器执行返回body标签字体的Javascript代码,如下所示:

Browser browser = new Browser( shell, SWT.NONE );
browser.setText( "<html><head></head><body></body></html>" );
browser.addProgressListener( new ProgressAdapter() {
  public void completed( ProgressEvent event ) {
    Object font = browser.evaluate( "return document.defaultView.getComputedStyle( document.body, null ).getPropertyValue('font-family');" );
  }
} );

这至少在我的(Windows)系统上返回浏览器引擎使用的实际字体。