首先,我要说我对Java UI开发相对较新。所有涉及的机器都在运行RHEL6。Java是OpenJDK 1.7。我有一个应用程序(请原谅拼写错误;我必须从无互联网环境中手动复制):
import javax.swing.*;
import java.awt.*;
class TestApp{
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run(){
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = e.getAllFonts();
for (Font font: fonts){
System.out.println(font.getFontName());
}
JTextArea text_pane = new JTextArea();
System.out.println("Using " + text_pane.getFont().getFontName());
text_pane.setText("HI");
JFrame j = new JFrame();
j.add(text_pane);
j.setSize(new Dimension(100,100));
j.setVisible(true);
}
});
}
}
./Xvnc :99 -geometery 1000x1000 -ac
System.out.println("Using " + text_pane.getFont().getFontName());
在任何一台机器上运行时,call都会打印出相同的字体名(Dialog.plain),但我不确定这是否真的意味着什么。有办法解决这个问题吗?我是不是完全从错误的角度来看这个问题?我应该注意,当从本地机器导出到远程显示器时,xeyes和xterm运行良好,只是我的Java应用程序杀死了它。