oal pessoal tudo bem esto lendo o livro use a cabeça java esto numa parte que eles no livro estao criando uma beat box
mas no capitulo 12 que fala sobre swing ensinando como fazer text are botao tem um seguinte codgo deles da beatbox vou posta para voçes mas nao esto entendendo o mtivo do erro de primeiro fala para eu implemtar uam instarface chamada ControlerEventListener mas da erro e e cloquei desse jeito
import javax.sound.midi.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
public class MiniMusicPlayer implements ControllerEventListener
com os 2 ll vai em Controller depois o 2 erro que nao to entendendo e esse
for (int i = 0 ; i<60 ; i+=4){
r=(int)((Math.random()*50) =!); /* e aqui o erro nao to entendendo o = ! pelo oque eu li isso so pode ser usando if for while do while mas nao ali me corrija seu eu estiver errado*/
track.add(makeEvent(144,1,r,100,i));
track.add(makeEvent(176,1,127,0,i));
track.add(makeEvent(128,1,r,100,i + 2));
}
ai quando eu apago esse = ! da erro no
sequencer.setSequence(seq);
sequencer.start();
sequencer.setTempoInBMP(120);/* aqui que da o erro */
alguem pode me ajudar nesse codigo vo posta ele por completo
import javax.sound.midi.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
public class MiniMusicPlayer implements ControllerEventListener{
static JFrame f = new JFrame("Meu Tocador de musica de video");
static MyDrawPanel m1;
public static void main(String args[]){
MiniMusicPlayer mini = new MiniMusicPlayer();
mini.go();
}
public void setUpGui(){
m1 = new MyDrawPanel();
f.setContentPane(m1);
f.setBounds(30,30,300,300);
f.setVisible(true);
}
public void go(){
setUpGui();
try{
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
sequencer.addControllerEventListener(m1,new int [] {127});
Sequence seq = new Sequence(Sequence.PPQ,4);
Track track = seq.createTrack();
/*int r = 0;*/
for (int i = 0 ; i<60 ; i+=4){
r=(int)((Math.random()*50) =!);
track.add(makeEvent(144,1,r,100,i));
track.add(makeEvent(176,1,127,0,i));
track.add(makeEvent(128,1,r,100,i + 2));
}
sequencer.setSequence(seq);
sequencer.start();
sequencer.setTempoInBMP(120);
}catch(Exception ex ){ex.printStackTrace();}
}
public MidiEvent makeEvent (int comd,int chan,int one , int two , int tick){
MidiEvent event = null;
try{
ShortMessage a = new ShortMessage();
a.setMessage(comd,chan,one,two);
event = new MidiEvent (a,tick);
}catch(Exception e ){
}
return event;
}
class MyDrawPanel extends JPanel implements ControllerEventListener{
boolean msg = false;
public void controlChange(ShortMessage event){
msg = true;
repaint();
}
public void paintComponent(Graphics g){
if (msg){
Graphics g2 = (Graphics2D) g;
int r = (int)(Math.random()*250);
int gr = (int)(Math.random()*250);
int b = (int)(Math.random()*250);
g.setColor(new Color(r,gr,b));
int ht= (int)((Math.random()*120) +10);
int width = (int) ((Math.random()*120)+10);
int x = (int)((Math.random()*40)+10);
int y= (int)((Math.random()*40)+10);
g.fillRect(x,y,ht,width);
}
}
}
}
obrigado