Переопределить метод paintComponent
на панели.
Вы не можете нарисовать на JPanel
в конструкторе. Это неуместное время для этого, и все, что вы рисуете, будет отменено, как только панель будет нарисована. Это происходит, как только это становится видимым, поэтому вы никогда не увидите, что вы нарисовали.
Вместо этого переопределить метод paintComponent
так:
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawLine(0, 0, 100, 100);
}
Этот метод вызывается на тему событий диспетчерское как часть процесса рисования самой панели. Этот метод будет называться каждый раз, когда содержимое панели нужно будет снова нарисовать, поэтому вы уверены, что ваша линия всегда будет отображаться.
Помните также, чтобы цвет вашего рисунка был чем-то другим, если фон черный, поскольку он будет по умолчанию для этого цвета.
Вы уверены, что ваш JPanel действительно содержится в JFrame или что-то подобное? –
'jPanel2.getGraphics();' Это неправильный способ сделать обычную картину! См. [Выполнение пользовательской живописи] (http://docs.oracle.com/javase/tutorial/uiswing/painting/) о том, как это сделать правильно. –