Avrei bisogno di un paio di aiuti riguardo un programma che stavo iniziando a scrivere e su come creare oggetti grafici.

1) premetto che io di java so veramente poco e non ho la minima idea del perchè mi spunti fuori un'eccezione (il sorgente è compilato senza errori).
Ecco il codice che ho scritto ieri notte sperando che mi possiate dare una mano.

codice:
public class Libro extends Biblioteca
{
 // parametri inerenti il libro
 protected String nome;
 protected String cognome;
 protected String genere;
 protected int anno;
 private int scelta;

 // metodi
 //inserisce un record nuovo e stampa o il record appena inserito o tutti i record dell'array
 public void inserisciLibro()
 {
  System.out.println("Nome autore: ");
  vet[conta].nome=Console.readLine();
  System.out.println("Cognome autore: ");
  vet[conta].cognome=Console.readLine();
  System.out.println("Genere libro: ");
  vet[conta].genere=Console.readLine();
  System.out.println("Anno di pubblicazione: ");
  vet[conta].anno=Console.readInt("");	
  System.out.println("Visualizzare dati inseriti?: (si=1 / no=0)"
  );
  scelta=Console.readInt("");
   if (scelta==1)
   {
    System.out.println("Nome: "+nome);
    System.out.println("Cognome: "+cognome);
    System.out.println("Genere: "+genere);
    System.out.println("Anno di pubblicazione: "+anno);
   }
   else
    stampaBiblioteca();
        
  if (conta>=10)
   System.out.println("Impossibile immagazzinare altri dati");
  else 
   ++conta; 
 }	
 
  // stampa l'array 
  public void stampaBiblioteca()
  {
   for (int i=0;i<conta;i++)
   {
    System.out.println("Nome autore: "+vet[i].nome);
    System.out.println("Cognome autore: "+vet[i].cognome);
    System.out.println("Genere libro: "+vet[i].genere);
    System.out.println("Anno di pubblicazione: "+vet[i].anno);
    System.out.println("--------------------------");
   }
  	
  }

  public static void main(String[] args)
 {
  Libro a = new Libro();
  a.inserisciLibro();	
 }

	
}
codice:
public class Biblioteca
{
 Libro vet[] = new Libro[10]; // Vettore in cui si andranno a memorizzare i campi compilati dall'utente
 public static int conta=0;	  // contatore 

}
2) avrei anche bisogno di una speigazione circa la creazione (in senso pratico) di oggetti grafici.
Ho letto l'articolo sul sito ma non ho capito molto bene.

Grazie a tutti!