方法setFont()不适用于参数[JLabel](eclipse)

时间:2015-11-05 13:20:26

标签: java eclipse arguments

这是下面的代码,由于在JLabel上应用了setfont()函数,我收到错误。 setFont()的语法似乎是正确的。

    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;

    public class Font  {
    public static void main(String Args[])
    {
    JFrame frame=new JFrame();
    frame.setBounds(100, 100, 450, 300);
        JLabel string1=new JLabel("Some Text");
        string1.setBounds(100,100,450,300);
        JTextField txt=new JTextField("add");
        string1.setFont (new Font("Arial", Font.Bold, 12));
        frame.setVisible(true);
        frame.add(string1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


   }
 }

错误是:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method setFont(java.awt.Font) in the type JComponent is not applicable for the arguments (Font)
    Bold cannot be resolved or is not a field

    at Font.main(Font.java:13)

2 个答案:

答案 0 :(得分:3)

程序正在调用名为Font的类。 在上面的程序中更改类的名称或使用新的java.awt.Font而不是Font:

更改班级名称

import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Font1  {
public static void main(String Args[])
{
JFrame frame=new JFrame();
frame.setBounds(100, 100, 450, 300);
    JLabel string1=new JLabel("Some Text");
    string1.setBounds(100,100,450,300);
    JTextField txt=new JTextField("add");
    string1.setFont (new Font("Arial", Font.BOLD, 22));
    frame.setVisible(true);
    frame.add(string1);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

OR

没有更改班级名称

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Font  {
public static void main(String Args[])
{
JFrame frame=new JFrame();
frame.setBounds(100, 100, 450, 300);
    JLabel string1=new JLabel("Some Text");
    string1.setBounds(100,100,450,300);
    JTextField txt=new JTextField("add");
    string1.setFont (new java.awt.Font("Arial", java.awt.Font.BOLD, 22));
    frame.setVisible(true);
    frame.add(string1);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

答案 1 :(得分:0)

导入java.awt.Font。在您的程序中,您将创建Font.java类的实例。编译器抱怨说,您应该提供java.awt.Font的实例而不是Font类

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

    public class Font  {
    public static void main(String Args[])
    {
    JFrame frame=new JFrame();
    frame.setBounds(100, 100, 450, 300);
        JLabel string1=new JLabel("Some Text");
        string1.setBounds(100,100,450,300);
        JTextField txt=new JTextField("add");
        string1.setFont (new java.awt.Font("Arial", java.awt.Font.BOLD, 12));
        frame.setVisible(true);
        frame.add(string1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


   }
 }