Java 将字体应用于JTextArea会使gui崩溃吗?
当字体行被注释掉时,下面的代码可以工作,当包含该行时,根本不显示GUI。据我所知,它的格式正确,但它破坏了GUI。这是什么原因造成的Java 将字体应用于JTextArea会使gui崩溃吗?,java,swing,user-interface,fonts,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
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();
}
});
}
进一步阅读:
2) 将JTextArea放置在JScrollPane中,并将滚动窗格添加到面板中,而不是文本区域本身:
content.add(new JScrollPane(jta));
使用1.6和1.7对我来说效果很好 一些建议: 1) 按如下方式强制执行Swing应用程序的EDT:
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
TestCode run = new TestCode();
}
});
}
进一步阅读:
2) 将JTextArea放置在JScrollPane中,并将滚动窗格添加到面板中,而不是文本区域本身:
content.add(new JScrollPane(jta));
问题是由于我的系统上下载的字体过多造成的。我之前下载了一个字体包,其中包含数千种额外的字体,这导致IDE花费了不必要的时间来寻找正确的字体
删除未使用的其他字体解决了问题,现在此代码工作正常。问题是由于我的系统上下载的字体过多造成的。我之前下载了一个字体包,其中包含数千种额外的字体,这导致IDE花费了不必要的时间来寻找正确的字体
删除未使用的附加字体解决了问题,现在该代码工作正常。没有错误。GUI永远不会打开。它的行为就像我以某种方式执行了一个无限循环,但它永远不会打开GUI。程序必须从IDE终止。它是否可能打开IDE后面的窗口?不,我已经检查过了。窗口不在那里。也考虑<代码>派生-fOntf()/Case>。如果删除StfFon(),它工作正常吗?没有错误。GUI永远不会打开。它的行为就像我以某种方式执行了一个无限循环,但它永远不会打开GUI。程序必须从IDE终止。它是否可能打开IDE后面的窗口?不,我已经检查过了。窗口不在那里。也考虑<代码>派生-fOnter()/Case>。如果删除SEFFONTHONE(),它工作正常吗?我很想知道您是否有机会在删除之前尝试<代码>派生FUTHONE()/代码>。如果我没有去清理垃圾的话,我会这么做的。我宁愿不重新安装它们来检查,但你可以感觉自由!我很想知道你在删除之前是否有机会尝试
deriveFont()
,因为。@trashgood我没有,对不起。如果我没有去清理垃圾的话,我会这么做的。我宁愿不重新安装它们来检查,但你可以感觉自由!