Я только что снова начал кодировать и, кажется, забыл, как удваивать буфер. Это код, который у меня есть сейчас, и я не уверен, что мне не хватает. Когда я запускаю его, просто белый экран, без овала.
В чем ошибка рендеринга?
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
public class Graphs extends JFrame {
private Image dbImage;
private Graphics dbg;
public static void main(String[] args) {
new Graphs();
}
public Graphs() {
setSize(1000, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setTitle("Graphs");
setLocationRelativeTo(null);
setVisible(true);
}
public void paint(Graphics g) {
dbImage = createImage(getWidth(), getHeight());
dbg = dbImage.getGraphics();
paintComponent(dbg);
dbg.drawImage(dbImage, 0, 0, this);
}
public void paintComponent(Graphics g) {
g.drawOval(200, 200, 200, 200);
repaint();
}
}
Обновление: ошибка компиляции на @Override
The method paintComponent(Graphics) of type Graphs must override or implement a supertype method.
1 quick fix available:
-> Remove '@Override' annotation
public void paintComponent(Graphics g) {
- Сделай@Override public void paintComponent(Graphics g) {
сюрприз! Совет: вместо этого рисуйте на заказ вJPanel
. Добавьте это в контейнер верхнего уровня. - person Andrew Thompson   schedule 24.01.2013@Override
важна — для выяснения, когда вы думаете, что переопределяете существующий метод, но на самом деле i> создание нового метода! +1 за публикацию кода, в котором проблемы были очевидны, и за быстрое принятие ответа. :) - person Andrew Thompson   schedule 24.01.2013