|
|
Hallo ich muss für ein referat ein diagramm zeichnen das sich mit 2 scrollbars verändern lässt eigentlich läuft jetz schon fast alles aus so ein |UnWort| kolben, den mein lehrer haben will, der raus und reinfährt. (bliebt nicht rot und man sihet blauen balken) irgendwie kann ich ihn nicht mit dem schaubild verknüpfen, könnt ihr mir helfe?
Quelltext import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Graphics;
/** * * Beschreibung * * @version 1.0 vom 16.02.2010 * @author */
public class neu extends Applet { Pause p=new Pause(); int xmax=500; int ymax=500; int V=1; int T=273; int x0, y0, x1, x2, y1, y2, r, fakx, faky, xPUNKT, yPUNKT; int Ex=25; // linter oberer Eckpunkt Zylinder int Ey=330; // linker oberer Eckpunkt Zylinder int Bx=15; // Breite Kolben int By=30; // Breite Zylinder int xm=Ex+Bx+100; int ym=(Ey+(By/2)-1); Scrollbar sbarVOLUMEN, sbarTEMPERATUR; Label labVOLUMEN, labTEMPERATUR, labPUNKT;
public void init() {
resize(xmax, ymax); setLayout(null); setBackground(Color.lightGray); r=5;
x0=25; y0=ymax-200-15; fakx=20; faky=30; labVOLUMEN = new Label("Volumen = "+String.valueOf(V)+"ltr"); labVOLUMEN.setBounds(50,398,90,25); labVOLUMEN.setBackground(Color.gray); add(labVOLUMEN); sbarVOLUMEN = new Scrollbar(Scrollbar.HORIZONTAL,V,1,1,100); sbarVOLUMEN.setBounds(150,400,300,20); sbarVOLUMEN.setBackground(Color.white); add(sbarVOLUMEN); sbarVOLUMEN.addAdjustmentListener(new HorcherVOLUMEN()); labTEMPERATUR = new Label("Temperatur = "+String.valueOf(T)+"K"); labTEMPERATUR.setBounds(330,40,115,25); labTEMPERATUR.setBackground(Color.lightGray); add(labTEMPERATUR);
sbarTEMPERATUR = new Scrollbar(Scrollbar.VERTICAL,T,0,1,501); sbarTEMPERATUR.setBounds(450,10,20,200); sbarTEMPERATUR.setBackground(Color.white); add(sbarTEMPERATUR); sbarTEMPERATUR.addAdjustmentListener(new HorcherTEMPERATUR());
labPUNKT = new Label("P("+String.valueOf(V)+") = "); labPUNKT.setBounds(330,340,115,25); labPUNKT.setBackground(Color.red); add(labPUNKT);
}
public void paint(Graphics g) {
// Zylinder g.drawLine(Ex,Ey,Ex,Ey+By); //senkrehte g.drawLine(Ex-1,Ey,Ex-1,Ey+By); // doppelte Line g.drawLine(Ex-1,Ey-1,Ex+165,Ey-1); // waagrechte g.drawLine(Ex-1,Ey-2,Ex+165,Ey-2); // doppelte Linie oben g.drawLine(Ex-1,Ey+By,Ex+165,Ey+By); // waagrechte g.drawLine(Ex-1,Ey+By+1,Ex+165,Ey+By+1); // doppelte Linie unten // Kolben g.setColor(Color.blue); g.fillRect(Ex+V,Ey,Bx,By); g.fillRect(Ex+Bx+V-1,ym,100,3);
// Zeichenfläche g.setColor(Color.white); g.fillRect(r,r,xmax-2*r,ymax-200); g.setColor(Color.black); g.drawRect(r,r,xmax-2*r,ymax-200); g.clipRect(r,r,xmax-2*r,ymax-200);
// Koordinatenachsen g.drawLine(x0,y0,xmax-20,y0); g.drawLine(x0,y0,x0,2*r+35);
// Beschriftung int i; for (i=0; i<=12; i=i+1) { g.drawLine(x0+i*fakx,y0,x0+i*fakx,y0+3); }
for (i=-1; i>=-7; i=i-1) { g.drawLine(x0,y0+i*faky,x0-3,y0+i*faky); }
for (i=0; i<=12; i=i+1) { g.drawString(Integer.toString(i),x0+1*i*fakx,y0+15); }
for (i=1; i<=7; i=i+1) { g.drawString(Integer.toString(i),x0-2*r,y0-i*faky); }
g.drawString("V",xmax-30,y0-1); g.drawString("[ltr]",xmax-34,y0+11); g.drawString("P",x0-10,r+r+20); g.drawString("[bar]",x0-19,r+r+32); // Funktion zeichnen double x11 = 0.1;
while (x11<=12) { x1 = (int) (x11*fakx + x0); y1 = (int) (fvonX(x11)*faky+y0); x2 = (int) ((x11+0.1)*fakx +x0); y2 = (int) (fvonX(x11+0.1)*faky+ y0); g.drawLine(x1,y1,x2,y2); x11 = x11+0.1; } // Punkt zeichnen double xwert=V; double ywert=-0.044079*8.31*T/(V*0.001)/100000;
xPUNKT= (int) (x0+xwert*fakx); yPUNKT= (int) (y0+ywert*faky);
g.setColor(Color.red); g.fillOval(xPUNKT,yPUNKT,5,5); } public double fvonX(double V) { double ywert; ywert =-0.044079*8.31*T/(V*0.001)/100000; return ywert;
}
class HorcherVOLUMEN implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e1) {
V=e1.getValue(); labVOLUMEN.setText("Volumen = "+String.valueOf(V)+"ltr"); labPUNKT.setText("P("+String.valueOf(V)+") = "); repaint(); zeichneneu(); }
} class HorcherTEMPERATUR implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e1) { T=e1.getValue(); labTEMPERATUR.setText("Temperatur = "+String.valueOf(T)+"K"); labPUNKT.setText("P("+String.valueOf(V)+") = "); repaint(); } } public void zeichneneu() { Graphics g=getGraphics();
g.setColor(Color.blue); g.fillRect(Ex,Ey,Bx,By); //p.warten(14); g.clearRect(Ex,Ey,Bx,By); g.clearRect(Ex+Bx,ym-3,100,6); g.setColor(Color.lightGray); g.setColor(Color.blue); //p.warten(10); g.fillRect(Ex+V,Ey,Bx,By); g.setColor(Color.red); g.fillRect(Ex,Ey,V,By); g.setColor(Color.blue); g.fillRect(Ex+Bx,ym,100,3); g.dispose(); }
}
|
|