eh bem provável, já q não está imprimindo as coordenadas!
muda a cor do seu Panel para saber se ele está sendo adicionado no Frame…
eh bem provável, já q não está imprimindo as coordenadas!
muda a cor do seu Panel para saber se ele está sendo adicionado no Frame…
O setBackground(), que vc se refere?
Eu alterei mas não apereceu a cor, será que é pq ja tem a imagem
no panel…
valeu flaryon.
é mouse ‘clicked’ não ‘cliked’
addMouseListener(new MouseAdapter() {
public void mouseCliked(MouseEvent e) { //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado
int x = e.getX();
System.out.println(x);
int y = e.getY();
System.out.println(y);
}
});
public void mouseClicked(MouseEvent e){//correto
se vc alterou a cor do seuPanel, e qd mandou visualizar o Form, não apareceu uma área com a cor q vc setou é pq o panel não está dentro do Form…adicione o panel ao Form!!!
Valeu Mark_Ameba…era o nome mesmo…rss
Agora vou poder dar continuidade aqui.
por um ‘c’…aheuaehauea
flaroyn eu adicionei meu panel ao frame na minha outra classe.
Fiz assim.
public PEMFrame() {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension dimensaoTela = kit.getScreenSize();
int larguraTela = dimensaoTela.width;
int alturaTela = dimensaoTela.height;
setBounds(larguraTela / 6, alturaTela / 6, LARGURA_FRAME, ALTURA_FRAME);
PEMPanel panel = new PEMPanel();
add(panel);
}
Esta correto?
Como eu poderia adicionar o panel em outro panel e depois ao frame?
Obrigado mais uma vez
Por isso eu coloco @Override nos métodos que estou sobreescrevendo… se estiver errado o nome o compilador reclama que não existe este método para sobreescrever.
da mesma forma
JPanel Panel1 = new JPanel();
JPanel Panel2= new JPanel();
Panel1.add(Panel2);
JFrame form = new JFrame();
form.add(Panel1);
esqueci de mencionar que deve ser dimensionado o tamando dos Paineis com o método
setpreferredSize(new Dimension(suaLargura,suaAltura));
Outra coisa…
public void paintComponent(Graphics g) {
super.paintComponents(g);
if (imagem != null)
g.drawImage(imagem, 0, 0, null);
}
Não trabalhe com o Graphics direto por que voce vai ter resultados estranhos.
Crie uma copia e trabalhe com o Graphics2D
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2d = (Graphics2D) g.create();//Criando a copia
if (imagem != null)
g2d.drawImage(imagem, 0, 0, null);
g2d.dispose();//liberando para ser desenhada
}
E quais problemas voce esta tendo agora?
Se esse Panel voce quer que seja o fundo inteiro do JFrame voce pode simplesmente no frame ao invés de add(panel), coloque setContentPane(panel)
Mas nesse caso um método add no frame iria chamar o add desse Panel que talvez seja algo que voce queira.
Mark_Ameba vc postou
addMouseListener(new MouseAdapter() {
public void mouseCliked(MouseEvent e) { //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado
int x = e.getX();
System.out.println(x);
int y = e.getY();
System.out.println(y);
}
});
Falou ser errado mas funcionou aqui…
Como assim vc quis dizer? eu não entendi.
Obrigado.
Vocês gostam de passar trabalho!
Coloque a imagem num panel que contenha só a imagem, e coloque o evento sobre esse panel!
o correto é mouseClicked e não mouseCliked!
[quote=flaryon]da mesma forma
JPanel Panel1 = new JPanel();
JPanel Panel2= new JPanel();
Panel1.add(Panel2);
JFrame form = new JFrame();
form.add(Panel1);
[/quote]
Você está adicionando um painel vazio, nao vai exibir nada mesmo.
Tu precisa adicionar o painel principal no teu frame.getContentPane().add( painel );
[quote=Filipe A.]Mark_Ameba vc postou
addMouseListener(new MouseAdapter() {
public void mouseCliked(MouseEvent e) { //Errado.. aqui voce só criou um método com esse nome mas ele não vai ser chamado
int x = e.getX();
System.out.println(x);
int y = e.getY();
System.out.println(y);
}
});
Falou ser errado mas funcionou aqui…
Como assim vc quis dizer? eu não entendi.
Obrigado.[/quote]
Funcionou mesmo? Quando voce clicou ele mostrou as coordenadas?
O correto é mouseClicked e voce colocou mouseCliked… o que eu quis dizer é que voce simplesmente criou um novo método dentro dessa classe que nunca vai ser chamado.
Aham eu ja corrigi aqui é que postei errado.
Não Pessoal ta exibindo aqui sim…
Ta blz…
agora tenho que implementar outras coisas.
Tipo vou ter que desabilitar os botões enquanto o som estiver tocando
Pra pessoa não avançar de tela.
Se alguem poder dar uma ajuda.
Tambem vou modificar o meu codigo com as dicas que recebi e ver como irá ficar.
Obrigado, estão me ajudando bastante.
No caso do som.
Se voce tocar o som na Thread principal toda sua aplicação já vai ficar desabilitada até o som terminar.
Nossa não sei nada de Thread vou ter que da uma pesquisada.
Mas o som vai continuar carregando dentro da minha classe PEMPanel?
valeu!