Amigos do Grupo, muito boa tarde, fui obrigado a voltar com 2 dúvidas, pode ser ? desde já, muito obrigado.
Graças a 3 pessoas daqui do grupo, posso dizer que consegui fazer o meu programa funcionar, mas tenho duas dúvidas;
Primeiro : O programa lê um arquivo .txt chamado de cifra musical (C-----Bm—F------------G-- Gm7) e vai mostrando a cifra num JTxtField e a figura da cifra, um arquivo .jpg ao lado numa label.
Segundo : O programa esta funcionando perfeitamente, ele vai lendo as cifras e mostrando , ótimo, maravilha, demorou mas saiu !
Terceiro : Gostaria de mais duas coisas e termino, se Deus desejar, bem, seria eu colocar um botão (Txtparar) que ao clicar, parasse o programa onde esta, mostrando a tela a cifra parada, e ao clicar em outro botão(Txtcontinuar), o programa continuasse do ponto que parou.
Quarto : Para terminar, queria que o programa ao ler cada cifra, colocasse ela em focus (creio ser o comando setfocus) para que a cifra fique envolvida com uma cor azul e em destaque.
Obs : Abaixo segue o programa que esta funcionando perfeitamente.
package Formularios;
import Classes.Sonumeros;
import static Formularios.FrmVisMusicas.txtpmusica;
import java.awt.Image;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
public class FrmMusicaPlay extends javax.swing.JInternalFrame {
public static void main (String [] args){
}
private Object reader;
public FrmMusicaPlay() {
initComponents();
txttempo.setDocument(new Sonumeros());
txtareamus.setText ("");
File arquivo = new File(“C:\MUSIC PLAY\Musicas\”+txtpmusica.getText()+".txt");
try {
BufferedReader ler = new BufferedReader(new FileReader(arquivo));
String lin = ler.readLine();
while (lin != null){
txtareamus.append (lin +"\n");
lin = ler.readLine();
}
} catch (Exception e) {
System.out.println(“erroo na leitura”);
}
}
private void BtnsairActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose(); //Quando clico no botão para sair da tela
}
private void btniniciarActionPerformed(java.awt.event.ActionEvent evt) {
// Cliquei no botão iniciar para rodar a rotina de ler as cifras.
new Thread() {
@Override
public void run() {
File arquivo = new File("C:\\MUSIC PLAY\\Musicas\\"+txtpmusica.getText()+".txt");
try{
BufferedReader ler = new BufferedReader(new FileReader(arquivo));
int flag;
flag=0;
String lin = ler.readLine(); //Começo a ler a primeira linha
while (lin !=null) {
String[ ] notas = lin.split("\\s"); // pego as cifras (C-----F--------Fm7---Gm7)
for (String nota : notas) {
if (!nota.equals("")) { //Si tiver espaço na linha, eu ignora, só leio as cifras
//pensei em colocar o comando para parar o programa aqui.
txtposicao.setText (nota); //coloco o nome da cifra num JTextField (txtposicao)
ImageIcon imageIcon = new ImageIcon(new ImageIcon("c:/MUSIC
PLAY/Notas/"+txtposicao.getText()+
".jpg").getImage().getScaledInstance(599,243,Image.SCALE_DEFAULT));
lblnota.setIcon(imageIcon); //coloco a imagem num label (lblnota)
long l = Long.parseLong(txttempo.getText() + "000"); //escolho quantos segundo tera a
função sleep()
try {
Thread.sleep(l);
} catch (InterruptedException ex) {
Logger.getLogger(FrmMusicaPlay.class.getName()).log(Level.SEVERE, null, ex);
}
} // Fim do if
} //Fim do for
lin = ler.readLine(); //Pulo 2 linhas, só quero ler as cifras, a letra do musica , não.
lin= ler.readLine();
} //Fim do while
}catch (IOException ex){
}
} //Fim do void run
} .start(); //fim do Thread
} //Fim do private
private void btnpararActionPerformed(java.awt.event.ActionEvent evt) {
clicado = true;
cont++; OBS : pensei nisso, mas não funcionou.
if(clicado) {
Break;
}
}
// Variables declaration - do not modify
private javax.swing.JButton Btnsair;
private javax.swing.JButton btniniciar;
private javax.swing.JButton btnparar;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblnota;
private javax.swing.JTextArea txtareamus;
private javax.swing.JTextField txtposicao;
private javax.swing.JTextField txttempo;
// End of variables declaration
} // Fim do Public Class
Muito obrigado e desculpa mais uma vez o trabalho.
Armando Barbosa Junior.