2

我需要你的帮助来解决这个问题……我有一个 JFrame,它的一些组件上有 setFont(font) 函数。setFont 函数导致 JFrame 加载太慢。有什么替代品吗?或者我应该在java包中导入字体还是什么????。

Font userTextFont=new Font("Joy",Font.BOLD,15);
userText.setFont(userTextFont);

如果我删除它会很好

userText.setFont(userTextFont);

userText 是一个 JTextField ...

短代码(有类似问题):-

import java.awt.Font;
import javax.swing.*;
import java.awt.*;

public class fonttest{

  public static void main(String[] args)
  {

      fonttest f1=new fonttest();
      f1.go();
  }
     public void go()
   {
      JFrame frame=new JFrame();

      JTextField userTextField=new JTextField(40);
      Font font=new Font("Impact",Font.BOLD,16);
      userTextField.setFont(font);

      frame.getContentPane().add(userTextField);
      frame.setVisible(true);
      frame.setSize(100,100);

   }

} 
4

1 回答 1

0

组件加载“缓慢”的问题是它们尚未经过验证。方法的Window javadocsetVisible说:

如果 Window 和/或其所有者还不能显示,则两者都可以显示。窗口将在可见之前进行验证。

当您调用 时setVisible(),需要验证所有组件。您可以在setVisible()调用之前验证它们:pack()JFrame

  frame.getContentPane().add(userTextField);
  frame.pack();
  frame.setSize(100,100);
  frame.setVisible(true);
于 2013-07-24T13:34:31.640 回答