Я знаю, что это, вероятно, просто, но это вызывает у меня проблемы. Когда я использую paint(), он ничего не показывает, и если я использую paintComponent(), он показывает ошибку (не может найти символ). Что я делаю не так?Использование super.paint() ничего не будет показывать
Это пример использования краски():
import javax.swing.*;
import java.awt.Graphics;
import java.awt.*;
public class Test extends JFrame {
public Test() {
this.setPreferredSize(new Dimension(400, 400));
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
super.paint(g);
// define the position
int locX = 200;
int locY = 200;
// draw a line (there is now drawPoint..)
g.drawLine(locX, locY, locX, locY);
}
public static void main(String[] args) {
Test test = new Test();
}
}
Комментарии сказать, что это хороший и простой код, но я ничего не вижу, потому что он ничего не показывает.
[SOLVED] Всем, кто ответил, спасибо. LOL у меня бра, я действительно не заметил, что была крошечная точка. Удивительный чувак, спасибо.
Работает на шахте ... Точка 1 на 1 пиксель, поэтому вам действительно нужно внимательно посмотреть на нее. Для большего эффекта измените функцию drawLine() на 'g.fillRect (locX - 2, locY - 2, 4, 4)'. – initramfs
@CPUTerminator это все еще в координате (200 200)? и ты просто сделал это больше? – ThisGuy
Да. Вместо этого использовал метод 'fillRect()', чтобы нарисовать заполненный «прямоугольник» вместо строки. Ширина и высота - 4 пикселя. Для этого не совсем идеально по 200, 200, для этого используйте 'g.fillRect (locX - 2, locY - 2, 5, 5)'. – initramfs