Hallo,
ich besuche oft diese Seite und hab viel gelernt
Aber jetzt hab ich ein problem.. Wie kann ich den Graphic2D.fill(Shape s) dinamic.. nicht nur in paint() methode sonden auch von der main methode..
in mein Problem
Ich moechte von der main methode die farben von die Shapes dinamic zu wechseln.. also ohne dass in paint(){} zu schreiben??
Danke im Vorraus,
Kirua
ich besuche oft diese Seite und hab viel gelernt
Aber jetzt hab ich ein problem.. Wie kann ich den Graphic2D.fill(Shape s) dinamic.. nicht nur in paint() methode sonden auch von der main methode..
in mein Problem
Code:
package drawing;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class FloorDisplay extends JComponent {
private Shape [] maschines = new Ellipse2D[12];
private Shape [] enterExits = new Rectangle[8];
private static Graphics2D g2;
public FloorDisplay( ) {
}
public void paint(Graphics g) {
g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
//Outer Lines
g2.drawLine(5, 5, 800, 5);
g2.drawLine(5, 5, 5, 700);
g2.drawLine(5, 700, 800, 700);
g2.drawLine(800, 5, 800, 700);
//Path LInes
g2.drawLine(5, 200, 800, 200);
g2.drawLine(5, 500, 800, 500);
g2.drawLine(200, 5, 200, 700);
g2.drawLine(600, 5, 600, 700);
//Maschine Lines up
g2.drawLine(300, 100, 300, 300);
g2.drawLine(400, 100, 400, 300);
g2.drawLine(500, 100, 500, 300);
//Maschine Lines down
g2.drawLine(300, 400, 300, 600);
g2.drawLine(400, 400, 400, 600);
g2.drawLine(500, 400, 500, 600);
//Enter and Exits like array from Shapes RECTANGLE
enterExits[0]= new Rectangle(190, 5, 20, 20);
enterExits[1]= new Rectangle(590, 5, 20, 20);
enterExits[2]= new Rectangle(5, 190, 20, 20);
enterExits[3]= new Rectangle(780, 190, 20, 20);
enterExits[4]= new Rectangle(5, 490, 20, 20);
enterExits[5]= new Rectangle(780, 490, 20, 20);
enterExits[6]= new Rectangle(190, 680, 20, 20);
enterExits[7]= new Rectangle(590, 680, 20, 20);
for(int i=0;i<8;i++){
g2.draw(enterExits[i]);
}
//Maschines like array from shapes ELIPSE
// P1-P3
maschines[0]=new Ellipse2D.Float(285, 85, 30, 30);
maschines[1]=new Ellipse2D.Float(385, 85, 30, 30);
maschines[2]=new Ellipse2D.Float(485, 85, 30, 30);
// P4-P6
maschines[3]=new Ellipse2D.Float(285, 285, 30, 30);
maschines[4]=new Ellipse2D.Float(385, 285, 30, 30);
maschines[5]=new Ellipse2D.Float(485, 285, 30, 30);
// P7-P9
maschines[6]=new Ellipse2D.Float(285, 385, 30, 30);
maschines[7]=new Ellipse2D.Float(385, 385, 30, 30);
maschines[8]=new Ellipse2D.Float(485, 385, 30, 30);
// P10-P12
maschines[9]=new Ellipse2D.Float(285, 585, 30, 30);
maschines[10]=new Ellipse2D.Float(385, 585, 30, 30);
maschines[11]=new Ellipse2D.Float(485, 585, 30, 30);
for(int i=0;i<12;i++){
g2.draw(maschines[i]);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Floor Display");
Container c = frame.getContentPane( );
c.setLayout(new BorderLayout( ));
FloorDisplay a = new FloorDisplay( );
c.add(a , BorderLayout.CENTER);
frame.setSize(815, 735);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible(true);
}
}
Ich moechte von der main methode die farben von die Shapes dinamic zu wechseln.. also ohne dass in paint(){} zu schreiben??
Danke im Vorraus,
Kirua