Galerinha, boa tarde,
Mais uma vez estou por aqui pedindo uma ajuda, tenho 2 problemas para terminar o meu programa em java que só estou conseguindo terminar por causa da ajuda de vcs, tô tentando.
Seguinte;
Tenho em um JTextarea o texto de uma musica com cifras (notas) conforme mostro abaixo.
Am Dm
Hoje eu quero a rosa mais linda que houver
E7 Am Dm E7
E a primeira estrela que vier para enfeitar a noite do meu bem
Am Dm
Hoje eu quero paz de criança dormindo
Fiz um código para trocar as notas da musica, que esta na nota A e eu quero tocar em B, logo.
quando o programa lê a nota A, ele troca para B, quando toca D ele troca para E, quando toca E ele troca para F#, até ai tudo bem, fiz um código, comprido, feio, usando vários cases e replaces, mas que pretendo mudar quando aprender a trabalhar com Programação Orientada a Objeto, minha duvida é como usar o replace para as trocas das notas, abaixo segue o que tentei fazer sem exito, não da erro, mas ele troca todas as notas por A##########################, acho que ele só valida o ultimo replace, falta de conhecimento do uso do replace ou do replaceAll
Parte do Código;
private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {
// Cliquei no botão alterar
if ((txtTomAtual.getText() .equals (txtNovoTom.getText()))) {
JOptionPane.showMessageDialog(null, “Tom atual e Novo tom, não podem ser iguais “);
}else{
String tomAtual = txtTomAtual.getText();
String tomNovo = txtNovoTom.getText();
String texto = txtArea.getText(); //pego o texto da jTextArea
String[] linhas = texto.split(”\n”);
for (int i = 0; i < linhas.length; i += 2) { leio somente as linhas onde tenho as cifras(notas) .
switch (tomAtual + tomNovo) {
case “AB”:
txtArea.setText(txtArea.getText().replace(“A”, “B”));
txtArea.setText(txtArea.getText().replace(“B”, “C#”));
txtArea.setText(txtArea.getText().replace(“C”, “D”));
txtArea.setText(txtArea.getText().replace(“C#”, “D#”));
txtArea.setText(txtArea.getText().replace(“D”, “E”));
txtArea.setText(txtArea.getText().replace(“D#”, “F”));
txtArea.setText(txtArea.getText().replace(“E”, “F#”));
txtArea.setText(txtArea.getText().replace(“F”, “G”));
txtArea.setText(txtArea.getText().replace(“F#”, “G#”));
txtArea.setText(txtArea.getText().replace(“G”, “A”));
txtArea.setText(txtArea.getText().replace(“G#”, “A#”));
break;
case “AC”:
JOptionPane.showMessageDialog(null, "Passei por AC ");
break;
case “AD”:
break;
case “A#F”:
break;
JOptionPane.showMessageDialog(null, "Passei A#G ");
break;
default:
JOptionPane.showMessageDialog(null, “Novo tom, so aceita A,B,C,D,E,F,G ou
A#,C#,D#,E,F#,G#”);
} // Fim do Suitch
Se alguém puder ajudar, eu agradeço muito,
Obrigado,
Armando.