Ваш метод main
имеет значение static
, поэтому он может напрямую обращаться только к полям static
класса. В противном случае вам нужно сначала создать экземпляр PlannerMain
, а затем получить доступ к его полям. * Т.е. 1005 *
public static void main(String[] args){
PlannerMain planner = new PlannerMain();
planner.frame = new JFrame("Land Planner");
planner.makeMap = new JButton("Make Map");
planner.makeMap.addActionListener(new makeMapListener());
...
}
Обратите внимание, что такой код инициализации лучше поместить в метод .
Кстати, переменные, на которые вы ссылаетесь, не глобальные. Прямо сейчас у вас есть столько разных frame
и makeMap
, сколько экземпляров PlannerMain
вы создаете. Они будут «глобальными» (или их ближайшим эквивалентом в Java), если вы объявите их public static
- в этом случае все экземпляры PlannerMain
будут иметь одинаковые frame
и makeMap
, и внешний мир увидит их а также.