Programação Orientada a Objectos e Interface Gráfica (JAPPLET ou APPLET)

Viva.

Eu gostava de saber como é que deveria fazer para criar um programa orientado a objectos e depois o utilizador poder utilizar o mesmo através de uma interface gráfica (introduzir valores e fazer as suas escolhas numa interface gráfica JAPPLET ou APPLET). Ele faria as suas escolhas e depois conforme o que inserisse o programa analisava as respostas e dizia se podia ou não continuar.
Bem, eu fui fazendo um esboço de um programa mas ainda não coloquei validações nenhumas porque não sei como é que tenho que fazer por causa de estar a receber os valores inseridos dessa forma.

Em seguido deixo as 3 classes que criei, gostava que me ajudassem e peço desculpa se estou a pedir demais.
Abraço

classe Veiculo

[code]
public class Veiculo {
//campos
public String cor;
public String matricula;
public String marca;
public String modelo;

//contrutores
public Veiculo() {
}

public Veiculo(String cor, String matricula, String marca, String modelo) {
    this.cor = cor;
    this.matricula = matricula;
    this.marca = marca;
    this.modelo = modelo;
}

//gets and sets
public String getCor() {
    return cor;
}

public void setCor(String cor) {
    this.cor = cor;
}

public String getMatricula() {
    return matricula;
}

public void setMatricula(String matricula) {
    this.matricula = matricula;
}

public String getMarca() {
    return marca;
}

public void setMarca(String marca) {
    this.marca = marca;
}

public String getModelo() {
    return modelo;
}

public void setModelo(String modelo) {
    this.modelo = modelo;
}

}[/code]

classe Main

public class MainGrafica {

    public static void main(String[] args) {
        Grafica graf = new Grafica();
        Veiculo v1 = new Veiculo("","","","");
    }
}

classe Grafica (APPLET)


import java.applet.Applet;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;

public class Grafica extends Applet {

    public void init() {
        this.setSize(500, 500);

        Panel painelform1 = new Panel(new GridLayout(5, 2));

        TextField cor = new TextField(30);
        TextField matricula = new TextField(30);
        TextField marca = new TextField(30);
        TextField modelo = new TextField(30);
        Button confirmar = new Button("Confirmar");
        Button limpar = new Button("Limpar");

        painelform1.add(new Label("Matricula:"));
        painelform1.add(matricula);
        painelform1.add(new Label("Marca:"));
        painelform1.add(marca);
        painelform1.add(new Label("Modelo:"));
        painelform1.add(modelo);
        painelform1.add(new Label("Cor"));
        painelform1.add(cor);
        painelform1.add(confirmar);
        painelform1.add(limpar);

        add(painelform1);
    }
}

mas o objetivo é fazer somente em APPLET
por que o que acontece, existem muitas outras maneiras de gerar um interface gráfica em java
Deitel em sua sexta versão (eu acho) realmente usa muitos applets como exemplo
mas o pacote swing é bem amplo para isso
Procure sobre JFrame (fácil, fácil de usar)

e como uso? podia exemplificar?

Tipo, vou postar alguma coisa aqui
mas o que acontece, com o uso de uma boa ide do tipo
netbeans 6.9.1
não gera-se mais interface na unha, só o código, o controle do sistema
mas vou postar um código aqui gerado pelo netbeans

fazendo na mão fica menos complexo

seria interessante você pegar uma apostila de swing pra aprender direitinho e tal
pq é muito usado


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Exemplo.java
 *
 * Created on 01/11/2010, 20:24:18
 */
package Temp;

import javax.swing.JOptionPane;

/**
 *
 * @author BATMOVEL
 */
public class Exemplo extends javax.swing.JFrame {

    /** Creates new form Exemplo */
    public Exemplo() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("aperte aqui");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(150, 150, 150)
                .addComponent(jButton1)
                .addContainerGap(163, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(153, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(124, 124, 124))
        );

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

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        JOptionPane.showMessageDialog(null, "Hello World", "Ola", JOptionPane.INFORMATION_MESSAGE);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Exemplo().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    // End of variables declaration
}