在Java中,每次鼠标单击都会更改字符串的字体
在JavaAWT中,每次单击鼠标时,我都必须更改字符串的大小和字体 首先,我将系统中所有可用的字体放入一个数组中,但它不起作用。这背后的原因是什么?我错在哪里 在下面的代码中,字体大小随着每次鼠标单击而增加,但字体不变在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;
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);