Hallo,
ist es möglich eine Graphics-Methode so zu trennen, dass beim Bildaufbau ein statischer und bei repaint nur ein dynamischer Teil gezeichnet wird ?
Beispiel:
Das stellt einen Manometer dar. Bei Änderung der Druckes p müssten nur die 3 letzen Zeilen neu gezeichnet werden. Das übrige sind Rahmen und Skala, also unveränderlich.
Die Bücher schweigen sich dazu aus.
Danke
ist es möglich eine Graphics-Methode so zu trennen, dass beim Bildaufbau ein statischer und bei repaint nur ein dynamischer Teil gezeichnet wird ?
Beispiel:
Java:
package Str;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Manometer extends JPanel {
static double pifuenfviertel = 3.926990817;
static double pidreihalbe = 4.71238898;
private int XZeiger=10;
private int YZeiger=50;
private int X1,X2,Y1,Y2;
private double p;
public void setP(double p) {
this.p = p;
XZeiger=(int)(50+40*(Math.cos(pifuenfviertel-p*pidreihalbe)));
YZeiger=(int)(50-40*(Math.sin(pifuenfviertel-p*pidreihalbe)));
repaint();
}
@Override protected void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.black);
BasicStroke stil = new BasicStroke(3.0f);
g2.setStroke(stil);
g.drawOval(0,0,100,100);
g.drawOval(46, 46, 8, 8);
for (int i=0;i<=10;i++){
X1=(int)(50+42*(Math.cos(pifuenfviertel-0.1*i*pidreihalbe)));
Y1=(int)(50-42*(Math.sin(pifuenfviertel-0.1*i*pidreihalbe)));
X2=(int)(50+38*(Math.cos(pifuenfviertel-0.1*i*pidreihalbe)));
Y2=(int)(50-38*(Math.sin(pifuenfviertel-0.1*i*pidreihalbe)));
g.drawLine(X1,Y1,X2,Y2);
}
BasicStroke stil1 = new BasicStroke(2.0f);
g2.setStroke(stil1);
g.drawLine(XZeiger, YZeiger, 50, 50);
}
}
Die Bücher schweigen sich dazu aus.
Danke