java - setFont()导致JFrame加载太慢,java

标签 java swing netbeans fonts

我需要你的帮助来解决这个问题...... 我有一个 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);

   }

} 

最佳答案

组件加载“缓慢”的问题在于它们尚未经过验证。 窗口 javadoc对于 setVisible 方法说:

If the Window and/or its owner are not yet displayable, both are made displayable. The Window will be validated prior to being made visible.

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

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

关于java - setFont()导致JFrame加载太慢,java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17822370/

相关文章:

java - 用数组填充组合框

java - Db4o API 在 NetBeans 中看不到动态加载的类?

java - 如何关闭 NetBeans 向导面板中的关键监听器?

java - 从不同的 .txt 文件获取 INT 并将它们加在一起

java - 序列化列表生成 "Item"个节点

java - 我们是否可以仅在加载了一个 Maven 依赖项后才添加另一个依赖项?

Java 邮件 : Create Message from String

java - 用于处理基元和基元数组/集合的 GUI 库

java - 我无法从另一个类设置 JLabel 的文本

git - 项目 + 每个开发人员 nbactions.xml?