Рассмотрим случай, когда у меня есть объект JFrame и JPanel с объектом JPanel, встроенным в JFrame.Насколько я понимаю, у каждого графического компонента был свой графический контекст.Так что мой JFrame имеет свой собственный графический контекст, а мой JPanel имеет свой собственный графический контекст, и эти контексты различны.Я собрал небольшой тест, который, кажется, подразумевает иное:
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.add(panel);
Graphics frameContext = frame.getGraphics();
Graphics panelContext = panel.getGraphics();
if (frameContext == panelContext){
System.out.println("The contexts are the same.");
} else {
System.out.println("The contexts are different.");
}
Вывод «Контексты одинаковые».Почему это так?Возможно ли иметь различный графический контекст для JPanel и JFrame?Я хочу рисовать в графическом контексте JPanel, но не в контексте JFrame.
Этот вопрос относится к Неправильному JPanel, отображаемому в CardLayout.Проблемы с getGraphics () .Я считаю, что ответ на этот вопрос может как-то решить другой.