java - 将字体应用于 JTextArea 会导致 gui 崩溃吗?

标签 java swing user-interface fonts

以下代码在字体行被注释掉时有效,并且在包含该行时根本不会出现 GUI。据我所知,它的格式正确,但它使 GUI 崩溃。可能是什么原因造成的?

public class TestCode extends JFrame{
JTextArea jta;
public TestCode(){
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    JPanel content = new JPanel();
    jta = new JTextArea(20, 30);
    jta.setFont(new Font("Courier New", Font.PLAIN, 12));  // This line crashes
    content.add(jta);
    add(content);         
    pack();
    setVisible(true);
}

public static void main (String [] args){

    TestCode run = new TestCode();

    }
}

我开始怀疑这和我的系统字体有关?我安装了额外的字体,也许这会影响 Java 检索它们的能力?

编辑:

只是为了澄清一下,当我运行这个程序时没有错误。 GUI 永远不会打开,IDE 变得缓慢且有问题,就好像我正在运行无限循环一样。该程序必须通过 IDE 终止(因为没有 GUI 显示要关闭)。

最佳答案

对于我来说,使用 1.6 和 1.7 效果很好。

一些建议:

1) 为您的 Swing 应用强制执行 EDT,如下所示:

public static void main(String[] args)
{ 
  SwingUtilities.invokeLater(new Runnable()
  {
    public void run()
    {
      TestCode run = new TestCode();
    }
  });
}

进一步阅读:Concurreny in Swing

2) 将 JTextArea 放入 JScrollPane 中,并将滚动 Pane 添加到面板,而不是文本区域本身:

content.add(new JScrollPane(jta));

关于java - 将字体应用于 JTextArea 会导致 gui 崩溃吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789776/

相关文章:

java - 查找二维数组或直方图的两个主要峰值和峰值之间的谷值

java - 使用 JSoup 抓取 XML

jquery UI 图标问题

java - 如果我想使用弹出树查看器创建自定义组合,从哪里开始

ios - 设置 3.5 英寸和 4 英寸屏幕的约束

java - 过期的斐波那契兔子

java - 如何在后台安装/卸载Android应用程序?

java - 添加滚动到文本区域

java - JPasswordField.getPassword() 的安全原因是什么?

java - JLabel 文本大于 JLabel 大小并转向 "..."