Я расширил класс JPanel, чтобы нарисовать график. Проблема, что у меня есть, что мне нужно глобальная графический объект, чтобы вызвать его в нескольких методов ... В качестве примера, вот что я пытаюсь сделать:Java: создание глобального графического объекта
public class Graph extends JPanel {
private Graphics2D g2d;
public void paintComponent(Graphics g){
g2d = (Graphics2D)g;
}
public void drawGridLines(int hor, int vert){
g2d.someLogicToDrawMyGridLines(someparams);
}
}
Это возвращает нулевое исключение указателя - так что мой вопрос: как создать глобальный графический объект? Какова наилучшая практика в этой ситуации?
Зачем вам нужен глобальный графический объект? Почему вы не можете называть 'drawGridLines' из' paintComponent' и передавать «Graphics» в качестве параметра? – khelwood
Это то, что у меня есть на данный момент - но это хорошее решение, если я буду называть drawGridlines() из другого класса? –
Лучше передать объект «Graphics» в свои вспомогательные функции, чем попытаться сохранить объект «Graphics», который может быть удален и больше не может быть использован. – khelwood