Я хочу нарисовать прямоугольник в Java в приложении Swing, но я не знаю, как это сделать. Я посмотрел на подобные вопросы, ни один из которых не содержит ответа, который мне нужен. Я попытался следующие:Рисовать прямоугольник в Java
private void paintComponent(Graphics graphics, Rectangle rect, Color color) {
contentPane.paintComponents(graphics);
Graphics2D graphics2D = (Graphics2D) graphics;
graphics2D.setColor(color);
graphics2D.draw(rect);
}
Я называю это нравится:
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
paintComponent(contentPane.getGraphics(), new Rectangle(0, 0, 50, 50), Color.WHITE);
Но бросает NullPointerException
на этой линии:
graphics2D.setColor(color);
Я подозреваю, что это graphics2D
быть null
. Как я могу это исправить?
'getGraphics' равно нулю, пока компонент не будет виден. – Veluria
В этом случае просто проверьте графики для нулевого и просто верните, если это так. – Frecklefoot
Никогда не используйте getGraphics, вы не контролируете процесс рисования, это сделано для вас, вам просто нужно подключиться к нему, чтобы получать уведомление, когда требуется обновление ... – MadProgrammer