我正在使用一本书来学习一些Java,我正处于开始程序之一并将代码复制下来,但不知怎的,我得到一个奇怪的错误,根本无法在线找到错误或解决方案
守则:
import java.awt.*;
import javax.swing.*;
public class GrussMitProgrammfenster extends JFrame {
public GrussMitProgrammfenster() {
super("Hallo");
Icon icon = new ImageIcon("test.png");
JLabel label1 = new JLabel("Viel Erfolg beim", JLabel.CENTER);
JLabel label2 = new JLabel("Programmieren mit Java!", JLabel.CENTER);
JLabel label3 = new JLabel(icon);
Font schrift = new Font("SansSerif", Font.BOLD, 24);
label1.SetFont(schrift);
label1.SetForeground(Color.RED);
label2.SetFont(schrift);
label2.SetForeground(Color.RED);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.SetBackground(Color.WHITE);
c.add(label1);
c.add(label2);
c.add(label3);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,250);
setVisible(true);
}
public static void main(String[] args){
new GrussMitProgrammfenster();
}
}
我得到的错误是:
GrussMitProgrammfenster.java:15: error: cannot find symbol
label1.SetFont(schrift);
^
symbol: method SetFont(Font)
location: variable label1 of type JLabel
GrussMitProgrammfenster.java:16: error: cannot find symbol
label1.SetForeground(Color.RED);
^
symbol: method SetForeground(Color)
location: variable label1 of type JLabel
GrussMitProgrammfenster.java:17: error: cannot find symbol
label2.SetFont(schrift);
^
symbol: method SetFont(Font)
location: variable label2 of type JLabel
GrussMitProgrammfenster.java:18: error: cannot find symbol
label2.SetForeground(Color.RED);
^
symbol: method SetForeground(Color)
location: variable label2 of type JLabel
GrussMitProgrammfenster.java:21: error: cannot find symbol
c.SetBackground(Color.WHITE);
^
symbol: method SetBackground(Color)
location: variable c of type Container
5 errors
[Finished in 3.2s with exit code 1]
感谢您的帮助!!
答案 0 :(得分:1)
label1.setFont
不是label1.SetFont
答案 1 :(得分:0)
它找不到方法SetBackground(),因为它不存在,但setBackground()可能确实存在(请记住Java区分大小写!)。编译器或解析器的输出确实有点奇怪,因为它将方法视为"符号"。
答案 2 :(得分:0)
不要忘记camelcase! :) 方法名称中的第一个字母绝不是大写字母,之后每个开始出租的新单词都是大写字母。 例如:
setBackground();
或
charAt();
答案 3 :(得分:0)
按照惯例,方法名称以小写字母开头。
SetFont()
中没有名为SetForeground
或JLabel
的方法。
JLabel
包含setFont()
和setForeground
。
所以使用:
label1.setFont ();
label1.setForeground ()
label2.setFont ();
label2.setForeground ()
答案 4 :(得分:0)
每个预定义方法的第一个单词的第一个字母始终为小写,之后的每个其他单词的第一个字母为大写。 因此它应该是
x
label1.setFont()