importjava.awt.Graphics;importjava.awt.Graphics2D;importjavax.swing.JFrame;@SuppressWarnings("serial")publicclassJFrameComLinhaextendsJFrame{publicJFrameComLinha(){super("JFrame com linha");setSize(800,600);setLocationRelativeTo(null);}@Overridepublicvoidpaint(Graphicsg){Graphics2Dg2d=(Graphics2D)g.create();g2d.drawLine(100,100,700,500);g.dispose();}publicstaticvoidmain(String[]args){JFrameComLinhajanela=newJFrameComLinha();janela.setVisible(true);}}
Porque g.create(); ? Na minha concepção seria suficiente fazer assim : Graphics2D g2d = g.create();… tipo, nao entendi isso : (Graphics2D)
I
InicianteJavaHenriqu
Para fazer uma cópia do objeto Graphics g original, para que sua aplicação possa usar este objeto e vc tbm sem nehum problema durante a renderização da tela.
Conversões entre tipos primitivos
Existem duas maneiras de fazer conversões de tipos:
Conversão implícita, quando o tamanho de uma variável é maior que o tamanho da variável ou o valor que está sendo atribuído. Exemplo:
int y = 10;
nbsp; long x = y;
O tamanho de int é menor que o de long, portanto é perfeitamente aceitável.
Conversão explícita, quando o tamanho de uma variável é menor que o tamanho da variável ou o valor que está sendo atribuído. Exemplo:
long y = 10L;
nbsp; int x = (int) y;
O tamanho de long é maior que o de int, portanto necessita indicar uma conversão. Esta indicativa é feita pelo tipo da variável, que irá receber o valor, entre parênteses: (int). Se esta informação não for colocada, ocorreria um erro de compilação indicando tipos incompatíveis. Outra forma é usar as constantes de identificação de tipos para fazer uma conversão explícita, como em: long y = 10L;
V
ViniGodoy
Esse cast existe por razões históricas. O método create() retorna um objeto do tipo Graphics, mas instancia um objeto mais poderoso, do tipo Graphics2D.
Já o create(). Você deve chama-lo para evitar alterar o objeto graphics recebido por parâmetro. É uma boa prática de programação não “sujar” o contexto gráfico. Assim, chamamos create() para obter uma cópia dele, trabalhamos com a cópia e, ao final a descartamos, deixando o objeto Graphics original inalterado.