Я довольно новичок в GUI в java, но в учебном пособии я все понимаю, пока не перейду к этому вопросу: Когда я запускаю этот код, я получаю кадр с овалом (точно так же, как я хотел), но когда это метод рисования называется?Вызывается метод paint() при создании JFrame?
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JPanel {
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(0, 0, 30, 30);
g2d.fillOval(0, 0, 30, 30);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Single Player");
frame.setSize(300,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Game());
}
}
Метод paint вызывается каждый раз, когда система сообщает ему, что состояние его изменилось и его необходимо перекрасить. Это делается вами в коде, вызывая метод 'repaint()'. – NoseKnowsAll
'но учебник im using' - если учебник рекомендует переопределять paint(), то избавиться от учебника. Пользовательская покраска должна выполняться путем переопределения метода paintComponent (...) '. Прочтите раздел из учебника Swing по [Custom Painting] (http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html) для получения дополнительной информации и рабочих примеров. – camickr