public static int jes = 15;
private PnlSul pnlSul;
public PainelPrincipal() {
setLayout(new BorderLayout(15, 15));
add(new JLabel("Entre com as fórmulas"), BorderLayout.NORTH);
pnlCentro = new PnlCentro();
add(pnlCentro, BorderLayout.CENTER);
pnlSul = new PnlSul();
add(pnlSul, BorderLayout.SOUTH);
pnlSul.getBtnLimpar().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
pnlCentro.limpaTextos();
}
});
pnlSul.getBtnCalcular().addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
int numCaixa=0;
boolean encontrou,resultado;
String[] coeficientesEquacao={ "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"};
ArrayList<Equacao> equacoesElementos=new ArrayList<Equacao>();
for (int i = 0; i < PnlCampos.TOTAL_CAMPOS; i++) {
for (int j = 0; j < PnlCampos.TOTAL_CAMPOS; j++) {
try{
ArrayList<ElementoQuimico> bloco=SeparaString.retornaElementos(pnlCentro.getTextosEsquerdo()[i][j]);
for(int k=0;k<bloco.size();k++){ //varre todos os elementos químicos da caixa de texto lida
encontrou=false;
for(int m=0;m<equacoesElementos.size();m++){ //varre todas as equações para encontrar a equação daquele elemento que está sendo lido no momento
if (equacoesElementos.get(m).getElemento().getElemento().equals(bloco.get(k).getElemento())){
equacoesElementos.get(m).acrescentaEquacao(bloco.get(k).getCoeficiente()+""+coeficientesEquacao[numCaixa]);
encontrou=true;
break;
}
}
if (!encontrou){
equacoesElementos.add(new Equacao(bloco.get(k),bloco.get(k).getCoeficiente()+""+coeficientesEquacao[numCaixa]));
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Expressão da Esquerda inválida","Expressão inválida",JOptionPane.ERROR_MESSAGE);
}
numCaixa++;
}
}
for(int i=0;i<equacoesElementos.size();i++){
equacoesElementos.get(i).acrescentaEquacao("=");
}
for (int i = 0; i < PnlCampos.TOTAL_CAMPOS; i++) {
for (int j = 0; j < PnlCampos.TOTAL_CAMPOS; j++) {
try{
ArrayList<ElementoQuimico> bloco=SeparaString.retornaElementos(pnlCentro.getTextosDireito()[i][j]);
for(int k=0;k<bloco.size();k++){ //varre todos os elementos químicos da caixa de texto lida
encontrou=false;
for(int m=0;m<equacoesElementos.size();m++){ //varre todas as equações para encontrar a equação daquele elemento que está sendo lido no momento
if (equacoesElementos.get(m).getElemento().getElemento().equals(bloco.get(k).getElemento())){
equacoesElementos.get(m).acrescentaEquacao(bloco.get(k).getCoeficiente()+""+coeficientesEquacao[numCaixa]);
encontrou=true;
break;
}
}
if (!encontrou){
equacoesElementos.add(new Equacao(bloco.get(k),bloco.get(k).getCoeficiente()+""+coeficientesEquacao[numCaixa]));
}
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Expressão da Direita inválida","Expressão inválida",JOptionPane.ERROR_MESSAGE);
}
numCaixa++;
}
}
for (int a=1;a<10;a++){
for (int b=1;b<10;b++){
for (int c=1;c<10;c++){
for (int j=1;j<10;j++){
for (int k=1;k<10;k++){
for (int l=1;l<10;l++){
resultado=true;
for(int contador=0;contador<equacoesElementos.size();contador++){
//int[] vetor={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r};
int[] vetor={a,b,c,j,k,l};
if (!equacoesElementos.get(contador).testeEquacao(vetor)){
resultado=false;
}
}
if (resultado){
//18/06/09
ArrayList <String> al = new ArrayList<String>();
for ( int z = 0; z< PnlCampos.TOTAL_CAMPOS; z++) {
for ( int w = 0; w< PnlCampos.TOTAL_CAMPOS; w++) {
al.add(a+ pnlCentro.getTextosEsquerdo()[z][w]);
System.out.println(al);
}
System.exit(0);
//18/06/09
}
}
}
}
}
}
}
}
}});
}
public static void main(String[] args) {
new Frame().setVisible(true);
}
}