Помогите разобраться со статическими переменными в Java.
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Помогите разобраться со статическими... Expand / Collapse
Автор
Сообщение
04.06.2001 8:53
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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.
Сообщ. #711696
04.06.2001 13:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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();
}
}
Сообщ. #711724
04.06.2001 21:25
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme 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();
}
}
Сообщ. #711767
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 1:05