to com um problema…to tentando criar um desenho na tela…
tipo, cada inserção q eu faco no Frame eu quero q objeto seja desenhado na tela, pra ele se desenhado vai te q xama a função paint() do mesmo…
tipo assim:
frame.getContentPanel.Add(classDesenho1);
– ai ele executaria a função “paint()” da classe “classDesenho1” e desenharia o objeto na tela apartir da função…
frame.getContentPanel.Add(classDesenho2);
– ai ele executaria a função “paint()” da classe “classDesenho2” e a desenharia tb
e assim por diante…
como eu faço isso??..tipo … não q tem q ser assim, queria sb como fazer algo +ou- desse modo, onde eu desenho varios objetos, porem, não ao mesmo tempo, pode ser q eu desenho um objeto no inicio de uma função e soh no final dela irei, ou não, desenhar outro…como faço isso?/…t++ obrigado…
Olá irmão. tenho um código aqui que se voce olhar com cuidado pode te ajudar.
importjava.awt.Event;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;publicclasse6xe632extendsJAppletimplementsActionListener{JLabelexpLabel,inputLabel;JTextFieldinputField;JButtontesteButton;intinput=0,result,num1,num2;intnumero;intmessage,getMessage;booleanfirstTime;publicvoidinit(){//configura containerContainercontainer=getContentPane();container.setBackground(Color.white);container.setLayout(newFlowLayout());//cria rotulo explicativoexpLabel=newJLabel("Exercícios de Multiplicação");container.add(expLabel);//cria rotulo para entrada de dadosinputLabel=newJLabel("DIGITE SUA RESPOSTA");container.add(inputLabel);//cria entrada para a resposta certainputField=newJTextField(10);container.add(inputField);//cria butão para testar a respostatesteButton=newJButton("TESTAR");testeButton.addActionListener(this);container.add(testeButton);firstTime=true;}//fim do metodo initpublicvoidactionPerformed(ActionEvente){showStatus("Quanto é "+num1+" vezes "+num2);input=Integer.parseInt(inputField.getText());inputField.setText("");repaint();}//fim do metodo actionpublicvoidstart(){num1=random();num2=random();}publicintrandom(){returnnumero=(1+(int)(Math.random()*9));}publicvoidmensagem(Graphicsg){if(firstTime==true){g.drawString("Pressione TESTAR para iniciar",10,130);firstTime=false;}elseif(input==(num1*num2)){switch(randomMessage()){case1:g.drawString("PARABENS!",55,145);g.drawString("Resposta Correta",40,160);num1=random();num2=random();showStatus("Quanto é "+num1+" vezes "+num2);break;case2:g.drawString("EXELENTE!",55,145);num1=random();num2=random();showStatus("Quanto é "+num1+" vezes "+num2);break;case3:g.drawString("BOM TRABALHO",55,145);g.drawString("Continue assim",40,160);num1=random();num2=random();showStatus("Quanto é "+num1+" vezes "+num2);break;case4:g.drawString("MUITO BEM",55,145);g.drawString("Você está se superando",40,160);num1=random();num2=random();showStatus("Quanto é "+num1+" vezes "+num2);break;}}elseif(input!=(num1*num2)){switch(randomMessage()){case1:g.drawString("RESPOSTA ERRADA",50,145);g.drawString("Tente novamente",50,160);break;case2:g.drawString("QUASE",50,145);g.drawString("Tente novamente",50,160);break;case3:g.drawString("NÃO DESISTA",50,145);g.drawString("Tente novamente",50,160);break;case4:g.drawString("CONTINUE TENTANDO",50,145);g.drawString("Você consegue",50,160);break;}}}publicintrandomMessage(){returnmessage=1+(int)(Math.random()*4);}publicvoidpaint(Graphicsg){super.paint(g);mensagem(g);}}
O
ozzyjuniorPJ
infelizmente não intendi … mas obrigado pela ajuda
J
JavaDropsPJ
Coloca o código do desenho dentro do método paintComponent(Graphics variavel). Esse método é o correspondente do paint() dos applet para aplicativos.
Para forçar o redesenho como num comando de update você usa o repaint() que não exige parametro e por isso é mais fácil que o usar paint(Graphics var).
Exemplo do paintComponents: public void paintComponent(Graphics comp) {
Graphics2D comp2D = (Graphics2D)comp;
Font type = new Font("monospaced", Font.BOLD, 14);
comp2D.setFont(type);
comp2D.setColor(getBackground());
comp2D.fillRect(0, 0, getSize().width, getSize().height);
comp2D.setColor(Color.black);
for (int i = 0; i < headlines.length; i++)
comp2D.drawString(headlines[i], 5, y + (20 * i));
}