Hallo zusammen
Ich möchte Daten, die in einer ArrayList abgespeichert sind zeichnen. Das klappt schon ganz gut, jedoch möchte ich jedesmal, wenn ich neue Daten hinzufüge, die Zeichnung aktualisieren und nicht erst am Schluss die gesamten Daten erhalten.
Ich hab schon ziemlich lange herumgesucht, und bin auf die Methoden repaint() und validate() gestossen. Habe schon verschiedene Kombinationen versucht, ebenfalls mit einem separaten Thread der repaint aufrufen sollte...
bin wirklich ahnungslos hoffe ihr könnt mir helfen
das ganze liegt natürlich auf einem Frame, das ein JPanel enthält
[Java]
void gui(){
frame = new JFrame();
plot = new plotPanel();
plot.setPreferredSize(new Dimension(250,300));
mainPanel = new JPanel();
mainPanel.add(plot);
frame.add(BorderLayout.CENTER,mainPanel);
}
[/Java]
Das ganze wird gezeichnet, jedoch leider erst am Schluss, wenn ich das Fenster minimiere, was repaint afrufen sollte, wird das ganze frame schwarz und erst am ende des Programmes wird es neu gezeichnet
Danke für eure hilfe
airglide
Ich möchte Daten, die in einer ArrayList abgespeichert sind zeichnen. Das klappt schon ganz gut, jedoch möchte ich jedesmal, wenn ich neue Daten hinzufüge, die Zeichnung aktualisieren und nicht erst am Schluss die gesamten Daten erhalten.
Ich hab schon ziemlich lange herumgesucht, und bin auf die Methoden repaint() und validate() gestossen. Habe schon verschiedene Kombinationen versucht, ebenfalls mit einem separaten Thread der repaint aufrufen sollte...
bin wirklich ahnungslos hoffe ihr könnt mir helfen
Java:
class plotPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponents(g);
final double dif = 20.0;
Graphics2D g2d = (Graphics2D) g;
int length = getWidth();
int width = getHeight();
xAxis = new Line2D.Double(dif,(width/2),length-dif,width/2);
yAxis = new Line2D.Double(length/2,dif,length/2,width-dif);
g2d.draw(xAxis);
g2d.draw(yAxis);
g2d.setColor(Color.ORANGE);
for(int i=0;i < dataList.size();i++)
{
g2d.fill(new Ellipse2D.Double((length/2)+dataList.get(i).getX()-1.5,(width/2)+dataList.get(i).getY()-1.5, 3.0, 3.0));
}
}
das ganze liegt natürlich auf einem Frame, das ein JPanel enthält
[Java]
void gui(){
frame = new JFrame();
plot = new plotPanel();
plot.setPreferredSize(new Dimension(250,300));
mainPanel = new JPanel();
mainPanel.add(plot);
frame.add(BorderLayout.CENTER,mainPanel);
}
[/Java]
Das ganze wird gezeichnet, jedoch leider erst am Schluss, wenn ich das Fenster minimiere, was repaint afrufen sollte, wird das ganze frame schwarz und erst am ende des Programmes wird es neu gezeichnet
Danke für eure hilfe
airglide