Comparação entre triângulos

Sou iniciante em Java e autodidata. Vi o enunciado de um exercício na Internet pedindo para criar um programa para comparação de tipos de triângulos e fiz o código abaixo. Usei o Netbeans e Notepad++. Está funcionando, mas não tenho certeza se é o correto a se fazer. Agradeço opiniões e sugestões.

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

        double v1 = Double.parseDouble(txtv1.getText());
        double v2 = Double.parseDouble(txtv2.getText());         
        double v3 = Double.parseDouble(txtv3.getText());
        
        if ((v1<v2+v3) && (v2<v1+v3) && (v3<v1+v2)){
  
        if ((v1==v2) && (v2==v3)){
        txtfinal.setText("TRIANGULO EQUILATERO");
        txtfinal1.setText("Três lados são iguais");
}
        else{
        if ((v1==v2) || (v1==v3) || (v2==v3)){
        txtfinal.setText("TRIANGULO ISOSCELES");
        txtfinal1.setText("Dois lados são iguais");}
        else
        {
        txtfinal.setText("TRIANGULO ESCALENO");  
        txtfinal1.setText("Três lados são diferentes");    
     }
   }
}
        else{
        txtfinal.setText("VALORES NÃO FORMAM UM TRIANGULO");  
        txtfinal1.setText("DIGITE OUTROS VALORES");
   }
}
2 curtidas

Tem algo errado com seus blocos de comando. Ficaria assim:

if ((v1 < v2 + v3) & & (v2 < v1 + v3) & & (v3 < v1 + v2)){

if ((v1 == v2) & & (v2 == v3)){
txtfinal.setText("TRIANGULO EQUILATERO");
txtfinal1.setText("Três lados são iguais");
}

else if ((v1 == v2) | | (v1 == v3) | | (v2 == v3)){
txtfinal.setText("TRIANGULO ISOSCELES");
txtfinal1.setText("Dois lados são iguais");
}
else {
txtfinal.setText("TRIANGULO ESCALENO");
txtfinal1.setText("Três lados são diferentes");
}
}
else {
txtfinal.setText("VALORES NÃO FORMAM UM TRIANGULO");
txtfinal1.setText("DIGITE OUTROS VALORES");
}

Fique atento a quando abrir e quando fechar os {}, se não você perde o controle do fluxo do código e vai ter erros tanto de compilação quanto de resultados. xD

Obrigado FearX.
Vou estudar mais sobre as condicionais.
Vi na internet que dá para usar “case” ao invés dos “ifs”.Vou tentar também.
Valeu.

Eu também criaria uma classe Triangulo, com três atributos, um para cada lado, aí deixaria essa lógica de comparação dentro dessa classe.

public class Triangulo {

    public static enum Tipo {
        EQUILATERO, ISOCELES, ESCALENO;
    }

    public final double a;
    public final double b;
    public final double c;

    public Triangulo(double a, double b, double c) {
        if ((a < b + c) && (b < a + c) && (c < a + b)) {
            this.a = a;
            this.b = b;
            this.c = c;
        } else {
            String mensagem = String.format("Valores (a=%f, b=%f, c=%f) não formam um triangulo", a, b, c);
            throw new IllegalArgumentException(mensagem);
        }
    }

    public Tipo getTipo() {
        if (tresLadosIguais()) {
            return Tipo.EQUILATERO;
        }
        if (doisLadosIguais()) {
            return Tipo.ISOCELES;
        }
        return Tipo.ESCALENO;
    }

    private boolean doisLadosIguais() {
        return a == b || a == c || b == c;
    }

    private boolean tresLadosIguais() {
        return a == b && b == c;
    }

    public String getDescricao() {
        switch (getTipo()) {
            case EQUILATERO:
                return "Três lados são iguais";
            case ISOCELES:
                return "Dois lados são iguais";
            case ESCALENO:
            default:
                return "Três lados são diferentes";
        }
    }
}

Exemplo:

double v1 = Double.parseDouble(txtv1.getText());
double v2 = Double.parseDouble(txtv2.getText());
double v3 = Double.parseDouble(txtv3.getText());

try {
    Triangulo triangulo = new Triangulo(v1, v2, v3);
    txtfinal.setText("TRIANGULO " + triangulo.getTipo());
    txtfinal1.setText(triangulo.getDescricao());
} catch (Exception e) {
    txtfinal.setText(e.getMessage());
    txtfinal1.setText("DIGITE OUTROS VALORES");
}

Obrigado staroski,

Eu ainda não entendo bem esses códigos que envolvem POO, mas estou estudando.
Vou aproveitar sua sugestão para estudar e tentar entender um pouco mais.
Valeu.