Srs, bom dia.
Fiz um método que tem 2 JtextFields (txttomatual e txtnovotom) e nele só posso escrever as strings A,B,C,D,E,F,G e A#,C#, D#,F#, G#. pelo meu pouco conhecimento na linguagem Java, fiz meu código com Case, poderiam passar um código mais limpo, menor e funcional ? Ficaria muito grato.
Abaixo segue a maneira que encontrei para realizar o código;
Conforme podem ver, usei dois SWITCH para cada JTextField, pela minha falta de conhecimento para programar somente um case para 2 JTextFields, mas foi o que consegui fazer, sei que não é o certo, pelo menos, a minha lógica funcionou e o programa, esta rodando sem erro. No final digo que não é permitido colocar uma String (letra) igual nos dois JTextFields, faltou verificar se um dos JTextFields não estão em branco, que também é uma operação invalida.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Cliquei no botão alterar
switch (txttomatual.getText()){ // Usei este case para o primeiro JTextField
case "A": case "B": case "C": case "D": case "E": case "F": case "G": case "A#": case "C#":
case "D#": case "F#": case "G#":
JOptionPane.showMessageDialog(null, "Passei por aqui, funcionou ! ! !");
break;
default:
JOptionPane.showMessageDialog(null, "Tom Atual, só aceita A,B,C,D,E,F,G ou
A#,C#,D#,E,F#,G#");
}
//=======================================================================
switch (txtnovotom.getText()){ //Usei este case para o segundo JTextField
case "A": case "B": case "C": case "D": case "E": case "F": case "G": case "A#": case "C#":
case "D#": case "F#": case "G#":
JOptionPane.showMessageDialog(null, "Passei por aqu");
break;
default:
JOptionPane.showMessageDialog(null, "Novo tom, só aceita A,B,C,D,E,F,G e
A#,B#,C#,D#,E,F#,G#");
}
//=========================================================================
if ((txttomatual.getText() .equals (txtnovotom.getText()))) {
JOptionPane.showMessageDialog(null, "Tom atual e Novo tom, não podem ser iguais ");
}else{
JOptionPane.showMessageDialog(null, "É diferente ");
}
}
Obrigado,
Armando