/**Createsanewinstanceofgrafico01*/publicgrafico01(){super("Gráficos - 1ª tentativa");setBackground(Color.CYAN);setSize(800,800);setVisible(true);}/***@paramargsthecommandlinearguments*/publicvoidpaint(Graphicsg1){Graphics2Dg=(Graphics2D)g1;g.setColor(Color.RED);g.drawLine((int)0.1*getSize().width,(int)getSize().height/2,(int)getSize().width-20,(int)getSize().height/2);}publicstaticvoidmain(String[]args){// TODO code application logic heregrafico01a=newgrafico01();a.setForeground(Color.CYAN);a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
Você não deve sobrepor o método paint em uma classe derivada de JFrame; em vez disso, crie uma classe derivada de JPanel, sobreponha o método paintComponent (não paint), e insira uma instância dessa classe derivada de JPanel em seu JFrame. Parece difícil mas não é tão difícil assim. Vou dar um exemplo abaixo, que postei faz algum tempo.
importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Point;importjava.awt.event.MouseEvent;importjava.awt.event.MouseMotionAdapter;importjava.util.List;importjava.util.ArrayList;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.WindowConstants;classMeuCanvasextendsJPanel{privateintx1,x2,y1,y2;privateColorcolor;// Lista dos pontos a serem desenhadosprivateList<Point>points=newArrayList<Point>();publicvoidaddNewPoint(intpX,intpY){points.add(newPoint(pX,pY));}publicvoidclearPoints(){points.clear();}publicvoidsetColor(ColorpColor){color=pColor;}/** * @see javax.swing.JComponent#paintComponent(java.awt.Graphics) */protectedvoidpaintComponent(GraphicspG){super.paintComponent(pG);Graphics2Dg2d=(Graphics2D)pG.create();g2d.setPaint(color);for(Pointpoint:points){g2d.fillOval(point.x-5,point.y-5,10,10);}g2d.dispose();}}/** */publicclassTesteDesenhoextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateMeuCanvasmeuCanvas=null;/** * This is the default constructor */publicTesteDesenho(){super();initialize();}/** * This method initializes this * * @return void */privatevoidinitialize(){this.setSize(300,200);this.setContentPane(getMeuCanvas());this.setTitle("Teste de Desenho");}/** * This method initializes meuCanvas * * @return javax.swing.JPanel */privateJPanelgetMeuCanvas(){if(meuCanvas==null){meuCanvas=newMeuCanvas();meuCanvas.addMouseMotionListener(newMouseMotionAdapter(){/** * @see java.awt.event.MouseMotionAdapter#mouseDragged(java.awt.event.MouseEvent) */publicvoidmouseDragged(MouseEventpE){intx1=pE.getX();inty1=pE.getY();meuCanvas.addNewPoint(x1,y1);meuCanvas.setColor(Color.RED);repaint();}});}returnmeuCanvas;}publicstaticvoidmain(String[]args){TesteDesenhotd=newTesteDesenho();td.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);td.setVisible(true);}}