【问题标题】:Method setFont() not applicable for arguments [JLabel] (eclipse)方法 setFont() 不适用于参数 [JLabel] (eclipse)
【发布时间】:2015-11-05 13:20:26
【问题描述】:

这是下面的代码,由于在 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)

【问题讨论】:

    标签: java eclipse arguments


    【解决方案1】:

    程序正在使用名称 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);
    }
    }
    

    无需更改类名

    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);
    }
    }
    

    【讨论】:

      【解决方案2】:

      导入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);
      
      
         }
       }
      

      【讨论】:

        猜你喜欢
        • 2019-12-28
        • 1970-01-01
        • 2016-11-17
        • 1970-01-01
        • 2018-07-19
        • 2012-08-30
        • 2015-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多