У меня есть этот класс, скажем, Foo
. Это extends JFrame
и является синглтоном. При этом он имеет два статических поля : 1) экземпляр Foo
и 2) Color
.
Вот фрагмент кода Foo
:
public class Foo extends JFrame{
private static final Color FOO_RED = new Color(155, 64, 69);
private static final Foo INSTANCE = new Foo();
private Foo(){
//do stuff
}
public static Foo getInstance(){
return INSTANCE;
}
}
У меня также есть другой класс, скажем, Launcher
. Это основной класс , который отвечает за запуск приложения. Это простой класс в том смысле, что его единственная задача - делегировать задачу построения Foo
для EDT
.
Вот фрагмент кода Launcher
:
public class Launcher{
public static void main(String[] args){
SwingUtilities.invokeLater((new Runnable(){
@Override
public void run()
{
Foo.getInstance();
}
}));
}
}
Теперь все это работает просто отлично. Но , когда я переключаю порядок полей Foo
( См. Ниже ), компоненты, использующие FOO_RED
, больше не окрашиваются в этот цвет.
public class Foo extends JFrame{
private static final Foo INSTANCE = new Foo(); //declared before Color
private static final Color FOO_RED = new Color(155, 64, 69);
private Foo(){
//do stuff
}
public static Foo getInstance(){
return INSTANCE;
}
}
Итак, возникает вопрос: имеет ли значение порядок статических полей , когда дело доходит до Swing
?