Тело класса может содержать только: определения переменных, определения методов или определения внутреннего класса.Тело метода содержит ноль или более операторов.Ваши утверждения должны быть помещены в тело метода.Вы определили их в теле класса.Например:
public class Launcher {
public void method1() {
// this is an instance method you can put code here too.
// Only instances of the class Launcher can call this method.
}
public static void main( String[] args ) {
// this is a class method (i.e. static) it belongs to the class Launcher
// your code must go in here.
}
}
Компилятор пытается сообщить вам, что он не распознает эти операторы как один из возможных вариантов (переменная def, метод def или внутренний класс def).Причина в том, что она находится на 2-й строке, а не на первой, в том, что первая строка может определять переменную экземпляра.Локальные переменные и переменные экземпляра могут иметь одинаковый синтаксис.Переменные, определенные в теле класса, являются переменными экземпляра (если не помечены как статические), а переменные, определенные в теле метода, являются локальными переменными для этого метода.
Так же, как и в стороне, вам не нужно устанавливать предпочтительную ширинуJLabel.JLabel изменит свой размер, чтобы исправить текст, который он дал.Обычно лучше, чтобы JLabel выбирал его размер в зависимости от содержимого, потому что это содержимое может измениться, и если вы жестко закодировали 300 пикселей в ширину и 100 пикселей в высоту, этого может быть недостаточно в зависимости от содержимого метки:
textLabel.setPrefferedSize(new Dimension(300, 100)); // this can be removed
Если вы хотите, чтобы окно было больше, установите предпочтительный размер JFrame и удалите вызов pack ().JFrame.pack () говорит JFrame установить его размер в зависимости от размера содержимого в JFrame.Если вы хотите, чтобы JFrame управлял своими размерами, просто установите их напрямую.