Re: [java-list] Método repaint()

2001-11-25 Por tôpico Herval Freire

Tente chamar o metodo update()

talvez funcione

ou adiciona um TimerTask ao seu timer que chama o metodo update() de tempos 
em tempos


[]s

At 07:45 21/11/01 -0300, you wrote:
>Olá:
>
>Para brincar um pouco com Java, fiz o seguinte aplicativo/applet.
>Ele simula uma espécie de protetor de tela, bem simples!
>
>Utilizei o método repaint() com a intenção de limpar todo o JFrame e
>imprimir novas linhas.
>Porém não obtive sucesso... ao utilizar o repaint() ele apenas imprime novas
>linhas, sem limpar o JFrame.
>
>Estou fazendo algo de errado?
>Pelo que li, o repaint() não deveria limpar o conteúdo a depois chamar o
>paint(Graphics) para redesenhar.
>
>Obrigado,
>
>Tomaz
>
>import javax.swing.*;
>import java.awt.*;
>import java.awt.geom.*;
>import java.awt.event.*;
>
>public class ProtecaoTela extends JFrame implements ActionListener{
>
>  final int NUM_LINHAS = 100;
>
>  public ProtecaoTela(){
>   super("Linhas aleatórias");
>
>   Timer t = new Timer(1000, this);
>   t.start();
>
>   setSize(800,600);
>   show();
>  }
>
>  public void paint(Graphics g){
>
>   Graphics2D g2d = (Graphics2D) g;
>
>   for(int i = 0; i < NUM_LINHAS; i++){
>g2d.setPaint(new Color((float)Math.random(), (float)Math.random(),
>(float)Math.random()));
>g2d.setStroke(new BasicStroke((float)Math.random()*5));
>g2d.draw(new Line2D.Double(Math.random()*800, Math.random()*600,
>Math.random()*800, Math.random()*600));
>   }
>  }
>
>  public void actionPerformed(ActionEvent e){
>   repaint();
>  }
>
>  public static void main(String v[]) {
>ProtecaoTela app = new ProtecaoTela();
>
>app.addWindowListener(
> new WindowAdapter(){
>  public void windowClosing(WindowEvent e) {
>   System.exit(0);
>  }
> }
>);
>  }
>}
>
>-- LISTA SOUJAVA 
>http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-

-
--- Herval Freire de A. Júnior --
--- mailto:[EMAIL PROTECTED] 
- http://www.herval.hpg.com.br --
- UIN: 2067270 --
-
--[The adepts are everywhere... awake! v0.666a]--
-

http://member.isavvix.com/herval/vote.jsp?enquete=1003


-- LISTA SOUJAVA 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-




Re: [java-list] Método repaint()

2001-11-25 Por tôpico Jason Douglas de Oliveira

Bom Dia Tomaz,

tente usar a seguinte instrucao:

public void paint(Graphics g){
Dimension d = getSize();
g.clearRect(0, 0, d.width, d.height);

// O restante do seu codigo...
}

se voce der uma olhada na classe Component, o metodo update faz exatamente
isso, mas por motivos de renderizacao ele de algum jeito nao eh executado
para nao ficar dando aquelas piscadas no JFrame. Se isso se tornar um
problema tente pintar a dimensao do JFrame com a mesma cor pre-definida
tipo:
g.setColor(myColor);
Dimension d = getSize();
g.fillRect(0, 0, d.width, d.height);
// Acho que eh +- assim.

Veja o material completo na java.sun.com para mais detalhes.

Abraco!!!

-Mensagem original-
De: Tomaz Foá Binsztajn <[EMAIL PROTECTED]>
Para: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Data: Domingo, 25 de Novembro de 2001 05:54
Assunto: [java-list] Método repaint()


>AcessoBOL, só R$ 9,90! O menor preço do mercado!
>Assine já! http://www.bol.com.br/acessobol/
>
>
>
>Olá:
>
>Para brincar um pouco com Java, fiz o seguinte aplicativo/applet.
>Ele simula uma espécie de protetor de tela, bem simples!
>
>Utilizei o método repaint() com a intenção de limpar todo o JFrame e
>imprimir novas linhas.
>Porém não obtive sucesso... ao utilizar o repaint() ele apenas imprime
novas
>linhas, sem limpar o JFrame.
>
>Estou fazendo algo de errado?
>Pelo que li, o repaint() não deveria limpar o conteúdo a depois chamar o
>paint(Graphics) para redesenhar.
>
>Obrigado,
>
>Tomaz
>
>import javax.swing.*;
>import java.awt.*;
>import java.awt.geom.*;
>import java.awt.event.*;
>
>public class ProtecaoTela extends JFrame implements ActionListener{
>
> final int NUM_LINHAS = 100;
>
> public ProtecaoTela(){
>  super("Linhas aleatórias");
>
>  Timer t = new Timer(1000, this);
>  t.start();
>
>  setSize(800,600);
>  show();
> }
>
> public void paint(Graphics g){
>
>  Graphics2D g2d = (Graphics2D) g;
>
>  for(int i = 0; i < NUM_LINHAS; i++){
>   g2d.setPaint(new Color((float)Math.random(), (float)Math.random(),
>(float)Math.random()));
>   g2d.setStroke(new BasicStroke((float)Math.random()*5));
>   g2d.draw(new Line2D.Double(Math.random()*800, Math.random()*600,
>Math.random()*800, Math.random()*600));
>  }
> }
>
> public void actionPerformed(ActionEvent e){
>  repaint();
> }
>
> public static void main(String v[]) {
>   ProtecaoTela app = new ProtecaoTela();
>
>   app.addWindowListener(
>new WindowAdapter(){
> public void windowClosing(WindowEvent e) {
>  System.exit(0);
> }
>}
>   );
> }
>}
>
>-- LISTA SOUJAVA 
>http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
>dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>para sair da lista: envie email para [EMAIL PROTECTED]
>-
>
>


-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-




[java-list] Método repaint()

2001-11-24 Por tôpico Tomaz Foá Binsztajn

Olá:

Para brincar um pouco com Java, fiz o seguinte aplicativo/applet.
Ele simula uma espécie de protetor de tela, bem simples!

Utilizei o método repaint() com a intenção de limpar todo o JFrame e
imprimir novas linhas.
Porém não obtive sucesso... ao utilizar o repaint() ele apenas imprime novas
linhas, sem limpar o JFrame.

Estou fazendo algo de errado?
Pelo que li, o repaint() não deveria limpar o conteúdo a depois chamar o
paint(Graphics) para redesenhar.

Obrigado,

Tomaz

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;

public class ProtecaoTela extends JFrame implements ActionListener{

 final int NUM_LINHAS = 100;

 public ProtecaoTela(){
  super("Linhas aleatórias");

  Timer t = new Timer(1000, this);
  t.start();

  setSize(800,600);
  show();
 }

 public void paint(Graphics g){

  Graphics2D g2d = (Graphics2D) g;

  for(int i = 0; i < NUM_LINHAS; i++){
   g2d.setPaint(new Color((float)Math.random(), (float)Math.random(),
(float)Math.random()));
   g2d.setStroke(new BasicStroke((float)Math.random()*5));
   g2d.draw(new Line2D.Double(Math.random()*800, Math.random()*600,
Math.random()*800, Math.random()*600));
  }
 }

 public void actionPerformed(ActionEvent e){
  repaint();
 }

 public static void main(String v[]) {
   ProtecaoTela app = new ProtecaoTela();

   app.addWindowListener(
new WindowAdapter(){
 public void windowClosing(WindowEvent e) {
  System.exit(0);
 }
}
   );
 }
}

-- LISTA SOUJAVA  
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-