У меня есть JPanel GuiMap, и теперь я хочу нарисовать несколько разных графиков (сначала некоторые строки) в этой панели. Сначала у меня есть стартовая точка currentX=0
и currentY=0
. Затем я помещаю новые точки в метод updatePos. Этот метод изменяет точки. И метод paintComponent рисует линию между новым и старыми точками.Как добавить графику в JPanel в Java
У меня проблема только в последней строке.
Как перерисовать или перерисовать или обновить панель правильно?
Я хочу видеть старую и новую графику!
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JPanel;
public class GuiMap extends JPanel{
private int currentX = 0, currentY = 0;
private int prevX, prevY;
GuiMap(int xpos, int ypos){
this.currentX = xpos;
this.currentY = ypos;
}
public void updatePoint(int xpos, int ypos) {
prevX = currentX;
prevY = currentY;
currentX = xpos;
currentY = ypos;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.drawLine(prevX, prevY, currentX, currentY);
}
}
public class GuiMapFrame extends JFrame {
static GuiMap guiPanel;
static JFrame frame;
public static void main(String[] args) throws InterruptedException{
frame = new JFrame("SuperGui");
guiPanel = new GuiMap();
frame.setContentPane(guiPanel);
frame.setSize(600, 480);
frame.setLocation(100,100);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiPanel.updatePoint(20, 80);
guiPanel.updatePoint(130, 50);
guiPanel.updatePoint(60, 175);
guiPanel.repaint();
}
}
спасибо! я попробовал, и теперь это работает! –