Szczerze powiedziawszy nie rozumiem co chcesz zrobić :)
Ale może to coś pomoże:
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComboBox;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class BAM extends JFrame implements ActionListener, ItemListener{
private final static int X_SIZE = 6;
private final static int Y_SIZE = 6;
private final static int PIXEL_SIZE = 20;
private BamDraw wczyt1;
private BamDraw wynik1;
private BamDraw wczyt2;
private BamDraw wynik2;
private JComboBox select;
private JButton start;
private JButton step;
private Object[][] wzory;
public BAM() {
super("Bam");
this.setSize(400,315);
this.setResizable(false);
this.getContentPane().setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initPatterns();
initComponents();
this.getContentPane().add(wczyt1);
this.getContentPane().add(wczyt2);
this.getContentPane().add(wynik1);
this.getContentPane().add(wynik2);
this.getContentPane().add(select);
this.getContentPane().add(start);
this.getContentPane().add(step);
this.setVisible(true);
}
private void initPatterns() {
wzory = new Object[2][2]; //2 wzory po 2
boolean[][] a = {
{false, false, false, false, false ,false},
{false, true, true, true, true, true},
{true, false, false, true, false, false},
{true, false, false, true, false, false},
{false ,true, true, true, true, true},
{false ,false, false, false, false, false}
};
wzory[0][0] = a;
//liczba 1
boolean[][] one = {
{false,false, false,false,false,false},
{false, true,false,false,false,false},
{true, true,false,false,false,false},
{true, true,true,true,true,true},
{false ,false,false,false,false,false},
{false,false,false,false,false,false}
};
wzory[0][1] = one;
//litera b
boolean[][] b = {
{false,false,false,false,false,false},
{true,true,true,true,true,true},
{true,false,true,false,false,true},
{true,false,true,false,false,true},
{false,true,false,true,true,false},
{false,false,false,false,false,false},
};
wzory[1][0] = b;
//liczba 2
boolean[][] two = {
{false,false,false,false,false,false},
{false,true,false,false,true,true},
{true,false,false,true,false,true},
{true,false,true,false,false,true},
{false,true,false,false,false,true},
{false,false,false,false,false,false}
};
wzory[1][1] = two;
}
private void initComponents() {
wczyt1 = new BamDraw(PIXEL_SIZE, X_SIZE, Y_SIZE, Color.BLACK, Color.WHITE, Color.BLACK);
wczyt1.setBounds(5,5,wczyt1.getPreferredSize().width, wczyt1.getPreferredSize().height);
wynik1 = new BamDraw(PIXEL_SIZE, X_SIZE, Y_SIZE, Color.RED, Color.WHITE, Color.BLACK);
wynik1.setBounds(15+wczyt1.getPreferredSize().width,5,wynik1.getPreferredSize().width, wynik1.getPreferredSize().height);
wczyt2 = new BamDraw(PIXEL_SIZE, X_SIZE, Y_SIZE, Color.BLACK, Color.WHITE, Color.BLACK);
wczyt2.setBounds(5,30+wczyt1.getPreferredSize().height,wczyt2.getPreferredSize().width, wczyt2.getPreferredSize().height);
wynik2 = new BamDraw(PIXEL_SIZE, X_SIZE, Y_SIZE, Color.RED, Color.WHITE, Color.BLACK);
wynik2.setBounds(15+wczyt2.getPreferredSize().width,30+wczyt1.getPreferredSize().height,wynik2.getPreferredSize().width, wynik2.getPreferredSize().height);
select = new JComboBox();
select.setBackground(Color.WHITE);
select.addItem("Wybierz");
select.addItem("Wzrór1");
select.addItem("Wzrór2");
select.addItemListener(this);
select.setBounds(30+wczyt1.getPreferredSize().width+wynik1.getPreferredSize().width, 30, 100, 25);
start = new JButton("START");
start.setActionCommand("start");
start.addActionListener(this);
start.setBounds(30+wczyt2.getPreferredSize().width+wynik2.getPreferredSize().width, 65+wczyt2.getPreferredSize().height, 100, 25);
step = new JButton("KROK");
step.setActionCommand("step");
step.addActionListener(this);
step.setBounds(30+wczyt2.getPreferredSize().width+wynik2.getPreferredSize().width, 95+wczyt2.getPreferredSize().height, 100, 25);
}
public static void main(String args[]) {
new BAM();
}
//actionlistener
public void actionPerformed(ActionEvent e) {
}
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == null) return;
if(e.getSource().equals(select)) {
if(select.getSelectedIndex() == 0) return;
try {
boolean[][] wczyt_matrix = (boolean[][])wzory[select.getSelectedIndex()-1][0];
boolean[][] wynik_matrix = (boolean[][])wzory[select.getSelectedIndex()-1][1];
wczyt1.setMatrix(wczyt_matrix);
wynik1.setMatrix(wynik_matrix);
}catch(IndexOutOfBoundsException ex) {
}
}
}
}
class BamDraw extends JPanel {
private int x; //ilosc kratek w poziomie
private int y; //ilosc kratek w pionie
private int pixelSize; //rozmiar kratki
private Color filledCol; //kolor wypelnienia
private Color defaultCol; //kolor planszy
private Color lineCol; //kolor lini
boolean [][] matrix; //macierz
public BamDraw(int x, int y) {
super();
this.x =x;
this.y =y;
this.pixelSize = 10;
this.filledCol = Color.BLACK;
this.defaultCol = Color.WHITE;
this.lineCol = Color.BLACK;
this.setOpaque(false);
initMatrix();
}
public BamDraw(int pixelSize,int x,int y) {
super();
this.x =x;
this.y =y;
this.pixelSize = pixelSize;
this.filledCol = Color.BLACK;
this.defaultCol = Color.WHITE;
this.lineCol = Color.BLACK;
this.setOpaque(false);
initMatrix();
}
public BamDraw(int pixelSize, int x,int y, Color filledCol, Color defaultCol, Color lineCol) {
super();
this.x =x;
this.y =y;
this.pixelSize = pixelSize;
this.filledCol = filledCol;
this.defaultCol = defaultCol;
this.lineCol = lineCol;
this.setOpaque(false);
initMatrix();
}
private void initMatrix() {
this.matrix = new boolean [x][y];
for(int i=0; i<x; i++)
for(int j=0; j<y; j++)
matrix[i][j] = false;
}
public void setMatrix(boolean[][] matrix) {
if(matrix == null) return;
try {
if(matrix.length != this.matrix.length || matrix[0].length != this.matrix[0].length) return ;
}catch(NullPointerException e) {
return ;
}catch(IndexOutOfBoundsException e) {
return ;
}
this.matrix = matrix;
repaint();
revalidate();
}
public Dimension getPreferredSize() {
return new Dimension(x*pixelSize +(x+1), y*pixelSize+ (y +1)); //plus linie
}
private void paintMatrix(Graphics g) {
g.setColor(defaultCol);
g.fillRect(0, 0, getPreferredSize().width, getPreferredSize().height);
drawGrid(g);
for(int i=0; i<matrix.length; i++) {
for(int j=0; j<matrix[0].length; j++) {
if(matrix[i][j]) {
g.setColor(filledCol);
} else {
g.setColor(defaultCol);
}
g.fillRect(pixelSize*i +(i+1), pixelSize*j+(j+1),pixelSize, pixelSize);
}
}
}
private void drawGrid(Graphics g) {
g.setColor(lineCol);
for(int i=0; i<=getPreferredSize().width; i+=pixelSize+1) {
g.drawLine(i, 0, i, this.getPreferredSize().height);
}
for(int j=0; j<=getPreferredSize().height; j+=pixelSize+1) {
g.drawLine(0, j, getPreferredSize().width, j);
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
paintMatrix(g);
}
}