Erro com métodos e if/ ou checkbox

Tenho uma classe principal Jantinha006 e um classe Interface onde faço uma tela com JFrame.

Tenho um método que altera o valor das porções (Arroz, carne, salada) e outro para alterar a quantidade. Quando marco a checkbox (classe interface) “chamaPratoInicial” ele funciona corretamente, mas quando desmarco ele e tento alterar a quantidade das porções não funciona. (tem a matriz completa pratosIniciais, retirei o resto dela para ficar mais objetivo

public class Jantinha006 {

static int[] vetorC = {1,3,2};
static int[][] matrizP = new int[3][3];

public static void pratosIniciais() {

    matrizP[0][0] = 2;
    matrizP[0][1] =.......

public static void criarPrato(int prato, int qntArroz, int qntCarne, int qntSalada){
    
        matrizP[prato][0] = qntArroz;
        matrizP[prato][1] = qntCarne;
        matrizP[prato][2] = qntSalada;
    
}
public static void alteraValorPrato (int prato, int valorArroz, int valorCarne, int valorSalada) {
        
    if (valorArroz < 0 || valorCarne < 0 || valorSalada < 0) { 
            JOptionPane.showMessageDialog(null,"Valor não pode ser negativo!", "Erro no valor!", 2);
    } else {
        vetorC[0] = valorArroz;
        vetorC[1] = valorCarne;
        vetorC[2] = valorSalada;            
        }
}
public static double calcularValorPrato(int prato) {
    double soma = 0;
    
    for (int porcao = 0; porcao < 3; porcao++) { //variavel porcao = uma hora e arroz, depois carne e por fim salada;
        soma += matrizP[prato][porcao] * vetorC[porcao];
    }
    return soma;
}

}

PARTE da outra classe

public class Interface extends javax.swing.JFrame {

Jantinha006 valorPrato = new Jantinha006();
Jantinha006 pratoPadrao = new Jantinha006();

private void botaoCalcularActionPerformed(java.awt.event.ActionEvent evt) {

    String saida = " ";
    
    if (!chamaPratoInicial.isSelected()) {
        
        try {
            valorPrato.pratosIniciais();
    
            saida += "\nValor do prato 1 R$ " + valorPrato.calcularValorPrato(0);
            saida += "\n\nValor do prato 2 R$ " + valorPrato.calcularValorPrato(1);
            saida += "\n\nValor do prato 3 R$ " + valorPrato.calcularValorPrato(2);   
    
            mostraTexto.setText(saida);
        } catch (Exception erro) {
            recebeQuantidadeArroz.setText("");
            recebeQuantidadeCarne.setText("");
            recebeQuantidadeSalada.setText("");
            JOptionPane.showMessageDialog(null, "Marque a opção pratos iniciais ou defina a quantidade de cada porção!", "Selecione uma Opcão!", 2);
        }
    } 
    else {
        valorPrato.criarPrato(0,
                Integer.parseInt(recebeQuantidadeArroz.getText()),
                Integer.parseInt(recebeQuantidadeCarne.getText()),
                Integer.parseInt(recebeQuantidadeSalada.getText()));
        
        saida += "\nValor do prato personalidado R$ " + valorPrato.calcularValorPrato(0);
    }
    
}

acabei de ver que faltou o “mostraTexto.setText(saida);” na chamada do método criarPrato. Agora ele calcula o valor do prato personalizado, mas mesmo assim só calcula quando a checkbox está marcada, sendo que era para ser o contrário.

Olá,

Pela sua lógica você calcula o prato personalizado quando o checkbox está marcado e calcula os pratos 1,2 e 3 quando está desmarcado.

Pra você calcular o prato personalizado quando o checkbox estiver desmarcado você deve retirar a negação (!) do seu if.

Valeu, realmente, tinha outra lógica antes em que fazia sentido a negação. Valeu!