在Java中,每次鼠标单击都会更改字符串的字体

在Java中,每次鼠标单击都会更改字符串的字体,java,swing,fonts,awt,mouseevent,Java,Swing,Fonts,Awt,Mouseevent,在JavaAWT中,每次单击鼠标时,我都必须更改字符串的大小和字体 首先,我将系统中所有可用的字体放入一个数组中,但它不起作用。这背后的原因是什么?我错在哪里 在下面的代码中,字体大小随着每次鼠标单击而增加,但字体不变 import java.awt.*; import java.awt.event.*; import java.awt.Font; class JavaFont extends Frame implements MouseListener { int size=20;

在JavaAWT中,每次单击鼠标时,我都必须更改字符串的大小和字体

首先,我将系统中所有可用的字体放入一个数组中,但它不起作用。这背后的原因是什么?我错在哪里

在下面的代码中,字体大小随着每次鼠标单击而增加,但字体不变

import java.awt.*;
import java.awt.event.*;
import java.awt.Font;
class JavaFont extends Frame implements MouseListener {
    int size=20;
    Label l1;
    Font  font;
    int i=0;
    int j=0;
    String fonts[] = 
 GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

    JavaFont()
    {
        System.out.println(fonts.length);
        setSize(500,500);
        setVisible(true);
        font=new Font(fonts[i],Font.BOLD,size);
        l1=new Label("ABC",Label.CENTER);
        l1.setFont(font);
        add(l1,BorderLayout.NORTH);
        addMouseListener(this);
    }
    public void mousePressed(MouseEvent me)
    {

    }
    public void mouseClicked(MouseEvent me)
    {
        if(i<fonts.length)
        {
        i++;
        size=size+2;
        l1.setText("ABC12");
        font=new Font(fonts[i],Font.BOLD,size);
        l1.setFont(font);
        }
        else
        {
            i=0;
        }

    }
    public void mouseEntered(MouseEvent me)
    {

    }
    public void mouseExited(MouseEvent me)
    {

    }
    public void mouseReleased(MouseEvent me)
    {

    }
    public static void main(String args[])
    {
        new JavaFont();
    }
}

它只适用于“TimeRoman”,所以为什么所有系统字体都不起作用。

您的问题标有Swing,所以请使用Swing组件

标签和框架是AWT组件

对于Swing,您应该使用
JLabel
JFrame
以及
Font
将按预期更改

它只适用于“TimeRoman”,所以为什么所有系统字体都不起作用,请帮助


我想AWT只支持某些字体。继续点击。我注意到它也适用于“单间隔”

很抱歉,swing标记无法与awt一起工作label@RohitSuthar,请参见编辑。AWT已死您无论如何都不应该使用它,原因如下。如果标签是(基于Swing的)
JLabel
,它就可以工作。这并不能直接回答你的问题,但提出了一个新的问题。。为什么要使用AWT?看到很多好的理由放弃AWT组件而支持Swing。是的,我知道AWT没有被使用,但在我的大学实践中它是一个程序,因为我使用AWT“我的大学”,这很难。如果他们不想从16年前被取代的技术中更新,我最好的建议就是改变大学。大多数能够在这方面提供帮助的人甚至都不愿意去研究它。@AndrewThompson亲爱的,大多数平台仍然使用AWT和旧的java 1.3版本。我们目前正在为一个大客户使用它。我们需要的是答案而不是借口。
font=new Font("TimesRoman",Font.BOLD,size);