/** * @author (A.Hermes) * @version (2003, dec) */ import java.awt.*; import javax.swing.*; public class Regelzeiger extends JFrame { private int width = 200, height = 80; private int row = 1; private String[] array; private Regel rule; private Container c; private JPanel canvas; private boolean start; private int nummer=89; public Regelzeiger() { super("cellulular automation"); setBounds(200,10,width,height); c = getContentPane(); canvas = new JPanel(); c.add(canvas); setVisible(true); rule = new Regel(89); } public void paint (Graphics g) { setTitle("Regel: "+nummer); if(rule !=null){ if (row == 1 || start) { Dimension size = getSize(); g.setColor(getBackground()); g.fillRect(0,0,size.width, size.height); g.setColor(Color.black); canvas.setPreferredSize(new Dimension(width,height)); } start=false; zeigeRegel(g, rule); } } public void zeigeRegel(int nummer){ this.nummer = nummer; rule.waehleRegel(nummer); repaint(); } private void zeigeRegel(Graphics g, Regel rule){ String[] muster = rule.liesMuster(); byte[] ersetzung = rule.liesErsetzungen(); int stelle=0; for (int anz=0; anz < muster.length; anz++){ for (int k = 0; k < 3; k++){ g.drawRect(5*(2+4*stelle+k),5*2+30,5,5); if (muster[anz].charAt(k) == '1'){ g.fillRect(5*(2+4*stelle+k),5*2+30,5,5); } }// for k g.drawRect(5*(2+4*stelle+1),5*3+32,5,5); if (ersetzung[anz] == 1){ g.fillRect(5*(2+4*stelle+1),5*3+32,5,5); } stelle++; } } }