Graphics!

Eu achei que tinha entendido Graphics, mas agora quando fui tentar nao consegui…

[code]package Start;

import View.MainView;
import java.awt.Color;
import java.awt.Graphics2D;

/**
*

  • @author André Lopes
    */
    public class Start {

    protected static MainView mainView;

    public static void main(String args[]) {
    mainView = new MainView();
    mainView.setVisible(true);

     //Graphics2D graphics2D = mainView.getGraphics2D();
     //graphics2D.setPaint(Color.BLACK);
    
     mainView.paintScreen();
    

    }
    }
    [/code]

package View;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

/**
 *
 * @author André
 */
public class MainView extends javax.swing.JFrame {

    public MainView() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 679, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 463, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(MainView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(MainView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(MainView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MainView.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainView().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    // End of variables declaration

    public Graphics2D getGraphics2D() {
        Graphics2D graphic2d = (Graphics2D) this.getGraphics();

        return graphic2d;
    }

    public void paintScreen() {
        Graphics g = getGraphics();
        g.setColor(Color.red);
        
        
        
        
    }
}

Podem me ajudar ?

Só queria usar o Graphics pra desenhar.

Sobrescreva o método paint do JFrame. Ele já vai te fornecer lá um objeto do tipo Graphics.

Leia os tutoriais de Java2D do Ponto V, isso está explicado lá tintim por timtim:
http://www.pontov.com.br/site/java/47-javageral/92-conhecendo-o-jframe
http://www.pontov.com.br/site/java/48-java2d

Haha deu certo.
Só tem duas coisas que não entendi.

o pack() e o dispose…

[code]public class Start {

protected static MainView mainView;
private static Graphics graphics;

public static void main(String args[]) throws InterruptedException {
    JFrame frame = new JFrame("Graphics!");
    frame.setVisible(true);
    
    Canvas canvas = new Canvas();
    canvas.setIgnoreRepaint(true);
    canvas.setSize(640, 480);
    
    frame.add(canvas);
    frame.pack();
    
    graphics = canvas.getGraphics();
    graphics.setColor(Color.BLACK);
    graphics.fill3DRect(50,50,300,400, true);
    graphics.dispose();
}

}
[/code]

O pack ajusta a janela de acordo com os componentes.

A explicação do dispose() está nos artigos que pedi para você ler. Além disso, eles também explicam que é errado chamar o getGraphics().
Finalmente, de onde você tirou esse canvas? Não estava nas referências que te passei. Aliás, está completamente errado, pois não se deve misturar AWT e Swing.

Leia os artigos que te passei e comece a fazer do jeito certo. Ficar fazendo cagada por tentativa e erro só vai te levar a frustração.
Fazer funcionar != fazer direito.