Aplicação Java com WindowBuilder duvida if e exibir dois resultados

Ola rapaziada estou estudando java hj e apareceram algumas duvidas fui fazer um exercício com equação do segundo grau e quase completei fiquei com duas duvidas:

A primeira é boba mas não consegui como aparecer o resultado de x1 e x2 o meu ta aparecendo só um resultado.
a segunda é como fazer o if para bloquear quando o delta for menor que zero está dando erro na tela aparece NAN.

Segue os código abaixo de windowBuilder e da aplicação java.
Primeiro código

[code]package br.unicarioca.PrjEquacai.dificil;

public class Equacao {
private double numeroA;
private double numeroB;
private double numeroC;
private double delta;
private double x1;
private double x2;

public double getNumeroA() {
	return numeroA;
}
public void setNumeroA(double numeroA) {
	this.numeroA = numeroA;
}
public double getNumeroB() {
	return numeroB;
}
public void setNumeroB(double numeroB) {
	this.numeroB = numeroB;
}
public double getNumeroC() {
	return numeroC;
}
public void setNumeroC(double numeroC) {
	this.numeroC = numeroC;
}
public double getDelta() {
	return delta = (numeroB*numeroB) - (4 * numeroA*numeroC);
}
public double getX1() {
		return x1 = ( -numeroB + (Math.sqrt (delta)  ) / ( 2*numeroA ) );
}
public double getX2 () {
		return x2 = ( ( -numeroB - (Math.sqrt (delta) ) ) / ( 2*numeroA ) );
}
[b]{
if (delta >= 0)
{
System.out.println("continue");
}
else
{
System.out.println("Delta invalido");
}[/b] 	}}[/code]

Segundo código

[code]package br.unicarioca.PrjEquacai.dificil;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class FrmTestaEquacao {

private JFrame frame;
private JTextField txtNovoValor1;
private JTextField txtNovoValor2;
private JTextField txtNovoValor3;
private JButton btnConfirmar;
private JButton btnConsultar;
private JLabel lblValor;
private JButton btnCalcular;
private JLabel lblValor2;

public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				FrmTestaEquacao window = new FrmTestaEquacao();
				window.frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}	}	});	}

public FrmTestaEquacao() {
	initialize();
}

private void initialize() {
	frame = new JFrame();
	frame.setBounds(100, 100, 450, 300);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.getContentPane().setLayout(null);
	
	final Equacao equacao1= new Equacao();
	
	JLabel lblDigiteOPrimeiro = new JLabel("Digite o primeiro numero");
	lblDigiteOPrimeiro.setBounds(20, 11, 116, 14);
	frame.getContentPane().add(lblDigiteOPrimeiro);
	
	txtNovoValor1 = new JTextField();
	txtNovoValor1.setBounds(20, 36, 86, 20);
	frame.getContentPane().add(txtNovoValor1);
	txtNovoValor1.setColumns(10);
	
	JLabel lblDigiteOSegundo = new JLabel("Digite o segundo n\u00FAmero");
	lblDigiteOSegundo.setBounds(20, 67, 133, 14);
	frame.getContentPane().add(lblDigiteOSegundo);
	
	txtNovoValor2 = new JTextField();
	txtNovoValor2.setBounds(20, 92, 86, 20);
	frame.getContentPane().add(txtNovoValor2);
	txtNovoValor2.setColumns(10);
	
	JLabel lblDigiteOTerceiro = new JLabel("Digite o terceiro n\u00FAmero");
	lblDigiteOTerceiro.setBounds(20, 123, 133, 14);
	frame.getContentPane().add(lblDigiteOTerceiro);
	
	txtNovoValor3 = new JTextField();
	txtNovoValor3.setBounds(20, 147, 86, 20);
	frame.getContentPane().add(txtNovoValor3);
	txtNovoValor3.setColumns(10);
	
	btnConfirmar = new JButton("Confirmar");
	btnConfirmar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
		
		equacao1.setNumeroA(Double.parseDouble(txtNovoValor1.getText()));
		equacao1.setNumeroB(Double.parseDouble(txtNovoValor2.getText()));
		equacao1.setNumeroC(Double.parseDouble(txtNovoValor3.getText()));
		
		}		});
	btnConfirmar.setBounds(177, 35, 91, 23);
	frame.getContentPane().add(btnConfirmar);
	
	btnConsultar = new JButton("Calcular Delta");
	btnConsultar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
	
	lblValor.setText(String.valueOf(equacao1.getDelta()));
		
		}		});
	btnConsultar.setBounds(177, 91, 106, 23);
	frame.getContentPane().add(btnConsultar);
	
	lblValor = new JLabel("");
	lblValor.setBounds(20, 178, 86, 84);
	frame.getContentPane().add(lblValor);
	
	btnCalcular = new JButton("Calcular x1 e x2");
	btnCalcular.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
[b]    lblValor2.setText(String.valueOf(equacao1.getX1()));
	lblValor2.setText(String.valueOf(equacao1.getX2()));                         [/b]
		}
	});
	btnCalcular.setBounds(177, 146, 133, 23);
	frame.getContentPane().add(btnCalcular);
	
	lblValor2 = new JLabel("");
	lblValor2.setBounds(177, 178, 133, 84);
	frame.getContentPane().add(lblValor2);
}

}
[/code]

Você tem de botar o if delta < 0 antes de chamar getX1() e getX2(). Se for < 0, não chame getX1() nem getX2(), em vez disso preencha os labels com outra coisa (por exemplo, uma mensagem de erro).

Como tirar a raiz quadrada de um número negativo lhe retorna um NaN, então é por isso que ocorre essa impressão inadequada.

A outra pergunta boba (por que é que aparece só um resultado) é que você está usando so o labelValor2. Mais atenção!

lblValor2.setText(String.valueOf(equacao1.getX1()));   //<--- aqui você dormiu um pouquinho, teve de virar a noite para entregar sua lição de casa?
        lblValor2.setText(String.valueOf(equacao1.getX2()));

Entanglement obrigado por responder mas não entendi como vai ficar o if nesse codigo seria como esta abaixo? Mas aparece com erro no double quando coloco assim.

E eu queria saber se dava para exibir os dois resultados de x1 e x2 naquela mesma jlabel que eu chamei de lblValor2 não consegui achar se tem algum and ou algo do tipo, ou se só tem como criando mais de uma jlabel.

if (delta < 0)
	{
	System.out.println("Delta invalido");

	}

	else
	{
	public double getX1() {
			return x1 = ( -numeroB + (Math.sqrt (delta)  ) / ( 2*numeroA ) );
	}

	public double getX2 () {
			return x2 = ( ( -numeroB - (Math.sqrt (delta) ) ) / ( 2*numeroA ) );
	}	
		
	} 
	}

Pensei mais um pouco em fazer assim mas ainda ta dando erro no double ainda se conseguir me dar uma luz agradeço.

if (delta < 0)
	{
	System.out.println("Delta invalido");
	}
	else
	{
	x1 = ( -numeroB + (Math.sqrt (delta)  ) / ( 2*numeroA ) );
	x2 = ( ( -numeroB - (Math.sqrt (delta) ) ) / ( 2*numeroA ) );
	}
	public double getX1() {
		return x1;
	}
	public double getX2 () {
		return x2;
}	

}

Sandro:

Quando eu falei “chamar” não é a mesma coisa que “declarar”. Acho mais fácil dar um exemplo pronto e você lê-lo cuidadosamente, para tentar entender o que deve ser feito (estou com preguiça de explicar passo por passo). É muito importante ler código dos outros e ver que tipo de coisas você poderia ter feito. De propósito, não vou fazer uma tela muito bonita, para você não se perder nos detalhes. (Eu não usei um layout manager, por exemplo. Se eu usasse um layout manager como o MigLayout o código seria bem mais simples, mas talvez não rodasse na máquina da sua escola).

Sua classe “equacao” estava quase boa. Só pus mais um método. Deixei com javadocs para ver que fica mais de acordo com o que o pessoal pede por aí no trampo (ou seja, deixar com javadocs).

package guj;

/**
 * Solução de uma equação de segundo grau.
 * @author Sandro Gama
 */
public class Equacao {
    private double numeroA;
    private double numeroB;
    private double numeroC;
    private double delta;
    private double x1;
    private double x2;

    public double getNumeroA() {
        return numeroA;
    }

    /**
     * Atribui o coeficiente a da equação ax^2 + bx + c.
     * @param numeroC O coeficiente a. 
     */
    public void setNumeroA(double numeroA) {
        this.numeroA = numeroA;
    }

    public double getNumeroB() {
        return numeroB;
    }

    /**
     * Atribui o coeficiente b da equação ax^2 + bx + c.
     * @param numeroC O coeficiente b. 
     */
    public void setNumeroB(double numeroB) {
        this.numeroB = numeroB;
    }

    public double getNumeroC() {
        return numeroC;
    }

    /**
     * Atribui o coeficiente c da equação ax^2 + bx + c.
     * @param numeroC O coeficiente c. 
     */
    public void setNumeroC(double numeroC) {
        this.numeroC = numeroC;
    }

    /**
     * Retorna delta.
     * @return Delta.
     */
    public double getDelta() {
        return delta = (numeroB * numeroB) - (4 * numeroA * numeroC);
    }

    /**
     * Retorna a primeira solução da equação, caso ela tiver uma ou duas soluções. 
     * @return A primeira solução, ou Double.NaN se a equação não tiver solução.  
     */
    public double getX1() {
        return x1 = (-numeroB + (Math.sqrt(delta)) / (2 * numeroA));
    }

    /**
     * Retorna a segunda solução da equação, caso ela tiver uma ou duas soluções. 
     * @return A segunda solução (ou a primeira, se as duas soluções forem iguais), 
     * ou Double.NaN se a equação não tiver solução.  
     */
    public double getX2() {
        return x2 = ((-numeroB - (Math.sqrt(delta))) / (2 * numeroA));
    }
    
    /**
     * Indica quantas soluções tem esta equação de segundo grau. 
     * @return 0, 1 ou 2.
     */
    public int numeroDeSolucoes() {
        double d = getDelta();
        if (d < 0)
            return 0;
        else if (d > 0)
            return 2;
        else
            return 1;
    }
}
package guj;

import java.awt.BorderLayout;

public class Equacao2GrauJFrame extends JFrame {

    private JPanel contentPane;
    private JLabel lblResolverAEquacao;
    private JLabel lblA;
    private JLabel lblB;
    private JLabel lblC;
    private JLabel lblDelta;
    private JLabel lblX1;
    private JLabel lblX2;
    private JButton btnResolver;
    private JTextField txtA;
    private JTextField txtB;
    private JTextField txtC;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Equacao2GrauJFrame frame = new Equacao2GrauJFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Equacao2GrauJFrame() {
        setTitle("Equacao de 2o. grau");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 327, 268);
        contentPane = new JPanel();
        setContentPane(contentPane);
        contentPane.setLayout(null);
        contentPane.add(getLblResolverAEquacao());
        contentPane.add(getLblA());
        contentPane.add(getLblB());
        contentPane.add(getLblC());
        contentPane.add(getLblDelta());
        contentPane.add(getLblX1());
        contentPane.add(getLblX2());
        contentPane.add(getBtnResolver());
        contentPane.add(getTxtA());
        contentPane.add(getTxtB());
        contentPane.add(getTxtC());
    }

    private JLabel getLblResolverAEquacao() {
        if (lblResolverAEquacao == null) {
            lblResolverAEquacao = new JLabel("Resolver a equacao do 2o. grau: ax^2 + bx + c = 0");
            lblResolverAEquacao.setBounds(6, 6, 281, 16);
        }
        return lblResolverAEquacao;
    }

    private JLabel getLblA() {
        if (lblA == null) {
            lblA = new JLabel("a=");
            lblA.setBounds(6, 34, 55, 16);
        }
        return lblA;
    }

    private JLabel getLblB() {
        if (lblB == null) {
            lblB = new JLabel("b=");
            lblB.setBounds(6, 62, 55, 16);
        }
        return lblB;
    }

    private JLabel getLblC() {
        if (lblC == null) {
            lblC = new JLabel("c=");
            lblC.setBounds(6, 90, 55, 16);
        }
        return lblC;
    }

    private JLabel getLblDelta() {
        if (lblDelta == null) {
            lblDelta = new JLabel("O valor de delta é ");
            lblDelta.setBounds(6, 158, 281, 16);
        }
        return lblDelta;
    }

    private JLabel getLblX1() {
        if (lblX1 == null) {
            lblX1 = new JLabel("x1=");
            lblX1.setBounds(6, 186, 281, 16);
        }
        return lblX1;
    }

    private JLabel getLblX2() {
        if (lblX2 == null) {
            lblX2 = new JLabel("x2=");
            lblX2.setBounds(6, 214, 281, 16);
        }
        return lblX2;
    }

    private JButton getBtnResolver() {
        if (btnResolver == null) {
            btnResolver = new JButton("Resolver!");
            btnResolver.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Equacao eq = new Equacao();
                    eq.setNumeroA(Double.parseDouble(getTxtA().getText()));
                    eq.setNumeroB(Double.parseDouble(getTxtB().getText()));
                    eq.setNumeroC(Double.parseDouble(getTxtC().getText()));
                    lblDelta.setText("O valor de delta é: " + eq.getDelta());
                    int nSolucoes = eq.numeroDeSolucoes();
                    if (nSolucoes == 0) {
                        lblX1.setText("Não há soluções (delta < 0)");
                        lblX2.setText("");
                    } else if (nSolucoes == 1) {
                        lblX1.setText("x1 = " + eq.getX1());
                        lblX2.setText("");
                    } else {
                        lblX1.setText("x1 = " + eq.getX1());
                        lblX2.setText("x2 = " + eq.getX2());
                    }
                }
            });
            btnResolver.setBounds(6, 118, 90, 28);
        }
        return btnResolver;
    }

    private JTextField getTxtA() {
        if (txtA == null) {
            txtA = new JTextField();
            txtA.setBounds(29, 28, 122, 28);
            txtA.setColumns(10);
        }
        return txtA;
    }

    private JTextField getTxtB() {
        if (txtB == null) {
            txtB = new JTextField();
            txtB.setBounds(29, 56, 122, 28);
            txtB.setColumns(10);
        }
        return txtB;
    }

    private JTextField getTxtC() {
        if (txtC == null) {
            txtC = new JTextField();
            txtC.setBounds(29, 84, 122, 28);
            txtC.setColumns(10);
        }
        return txtC;
    }
}