1

次のコードは、フォント行がコメント アウトされている場合に機能し、行が含まれている場合は 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 が表示されないため)。

4

2 に答える 2

1

1.6 と 1.7 を使用すると問題なく動作します。

いくつかの提案:

1) 次のように、Swing アプリの EDT を強制します。

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

さらに読む: Swing での同時実行

2) JTextArea を JScrollPane に配置し、テキスト領域自体ではなく、スクロール ペインをパネルに追加します。

content.add(new JScrollPane(jta));
于 2013-09-13T15:42:57.287 に答える