, поэтому я пробовал библиотеку java.awt.Graphics и столкнулся с проблемой в моем коде.Приведенный ниже код возвращает исключение нулевого указателя, поскольку графический объект "g" не определен во время выполнения.Я мог бы зациклить вызов и проверить, если g! = Null, но есть ли лучший способ сделать это?
Спасибо за любую помощь.
Это мой код:
package gui;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Gui extends JPanel{
Graphics g;
public Gui()
{
JFrame frame = new JFrame("test");
frame.setSize(700, 700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(this);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
this.g = g;
g.setColor(Color.blue);
for(int x = 0;x < 700; x += 20)
{
g.drawLine(x, 0, x, 700);
}
for(int y = 0;y < 700; y += 20)
{
g.drawLine(0, y, 700, y);
}
}
public void draw(Tuple xy)
{
g.setColor(Color.blue); // <--- null pointer exception
g.fillOval(xy.x, xy.y, 5, 5);
}
}
и основной класс:
package gui;
public class Main {
public static void main(String[] args)
{
new Gui().draw(new Tuple(200,200)); //Tuple is a custom class I wrote
}
}