|
|
|
Supreme Being
      
участник
Last Login: 06.02.2003 8:05
Сообщ.: 187,
Visits: 2 058
|
|
Hi, java programmer!
Я пытаюсь создать и показать окно.
Текст программы такой:
import javax.swing.*;
public class JFrameDemo {
private JFrame f;
public static void main(String[] args) {
f=new JFrame("JFrameDemo"); // Создаем окно f;
f.show();
}
}
При компиляции выдает:
Can't make a static reference to nonstatic variable f.
f=new JFrame("JFrameDemo");
^
1 error
Я так понял, что f у меня - нестатическая переменная, а я ссылаюсь на нее как на статическую. Или это не так ?
В чем моя ошибка ?
Akula.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 24.03.2002 17:21
Сообщ.: 230,
Visits: 2 564
|
|
Вариант номер раз:
import javax.swing.*;
public class JFrameDemo {
private JFrame f;
public static void main(String[] args) {
JFrameDemo jframe = new JFrameDemo();
jframe.f=new JFrame("JFrameDemo"); // Создаем окно f;
jframe.f.show();
}
}
вариант номер два:
import javax.swing.*;
public class JFrameDemo {
public static void main(String[] args) {
JFrame f = new JFrame("JFrameDemo");
f.show();
}
}
вариант номер три (мне нравится меньше всего -- зачем её тащить в класс?):
import javax.swing.*;
public class JFrameDemo {
private static JFrame f;
public static void main(String[] args) {
f = new JFrame("JFrameDemo");
f.show();
}
}
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077,
Visits: 21 402
|
|
Дело в том что static методы работают только со static переменными. И тот вариант который ты написал неприемлем для написания приложения.
Cделай так:
import javax.swing.*;
public class JFrameDemo extends JFrame {
public JFrameDemo(){
setTitle("JFrameDemo");
show();
}
public static void main(String[] args) {
JFrameDemo f = new JFrameDemo();
}
}
|
|
|
|