У меня вопрос о графике в Java. Возможно, это основной вопрос. Ниже вы можете увидеть мой код, чтобы создать объект Graphics с моей панелью в JFrame. Я хотел бы создать графический объект в конструкторе. (Если я создаю графический объект с помощью кнопки, он работает) Если я запускаю приложение, то сразу получаю исключение nullpointer из-за g.setColor (Color.RED);Java Graphics Nullpointer
Но я не понимаю, почему я получаю это исключение. Я отлаживал программу, и панель создается до того, как я использую .. = panel.getGraphics(); команда. Итак, как правило, мой объект Graphics должен быть сгенерирован правильно, а не null. Так что не стоит устанавливать цвет. Не могли бы вы объяснить мне, почему я получаю это исключение?
public class G2DTest extends JFrame {
private JPanel contentPane;
private JPanel panel;
Graphics g;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
G2DTest frame = new G2DTest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public G2DTest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 796, 810);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.setBounds(80, 87, 309, 234);
contentPane.add(panel);
JRadioButton rdbtnRot = new JRadioButton("rot");
rdbtnRot.setBounds(438, 183, 251, 41);
contentPane.add(rdbtnRot);
g = panel.getGraphics();
g.setColor(Color.RED);
}
очевидно, 'g' является нулевым – logger
[Это] (http://stackoverflow.com/questions/8184913/any-alternative-to-calling-getgraphics-which-is-returning-null) может быть полезно. –