Salve ho fatto una classe Data che vuole (giorno mese,anno) con due metodi
bisestile() : che dice se l'anno è bisestile (anche se c'è un errore perchè gli anni %100 che non sono anni%400 non sono bisestili).
addgiorni(giornidaaggiungere): che restituisce la data aggiungendo i giorni.

Questa è la classe:
codice:
public class Data {
	private int giorno,mese,anno ;

	public Data(int giorno, int mese, int anno) {
		super();
		this.giorno = giorno;
		this.mese = mese;
		this.anno = anno;
	}
	
	public int get_mese(){
		return mese;
	}
	
	public String bisestile(){
		String year ;
		if (anno%4==0 &&  anno%400==0){
			year="E' bisestile";
		}
		else{
			year="Non è bisestile";
		}
		
		return year;
	}
	
	public void addDay(int giorni){
		
		giorno =giorno +giorni;
		
		if(mese==1 || mese ==3 || mese ==5 ||mese ==7 ||mese==8 ||mese ==10 ||mese ==12){
			if(giorno>31){
				mese=mese+1;
				if(mese>12){
					anno =anno+1;
					mese = mese - 12 ;
					
				}
				giorno= giorno-31;
			}
		}
		else if(mese==4 || mese ==6 || mese ==9 ||mese ==11){
			if(giorno>30){
				mese=mese+1;
				giorno= giorno-30;
			}
		}
		
		else if(mese==2){
			
			if(bisestile().equals("E' bisestile")){
				if(giorno>29){
					mese=mese+1;
					giorno= giorno-29;
				}
			}
			else{
				if(giorno>28){
					mese=mese+1;
					giorno= giorno-28;

			}
			
		}
				
		
	    }
		System.out.println("Aggiungeno i giorni la data diventa :" + giorno+ " " + mese +" "+anno+".");
     }
Questa è la classe ProvaData:

codice:
public class ProvaData {

	public static void main(String[] args) {
		
		Data d=new Data(1,2,2000);
		System.out.println(d.bisestile());
		d.addDay(35);

	}

}
tutto funziona ....

ora vorrei utilizzarla tramite jframe con windows builder ho fatto :
codice:
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class FinestraProvaData extends Data {

	private JFrame frmDataAggiungiGiorni;
	private JTextField txgiorno;
	private JTextField txmese;
	private JTextField txanno;
	private JTextField txgiorniadd;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				

				try {
					FinestraProvaData window = new FinestraProvaData();
					window.frmDataAggiungiGiorni.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public FinestraProvaData() {
		super( giorno,  mese, anno);
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmDataAggiungiGiorni = new JFrame();
		frmDataAggiungiGiorni.setTitle("Data Aggiungi Giorni");
		frmDataAggiungiGiorni.setBounds(100, 100, 450, 300);
		frmDataAggiungiGiorni.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frmDataAggiungiGiorni.getContentPane().setLayout(null);
		
		JLabel lblGiorno = new JLabel("Giorno");
		lblGiorno.setBounds(28, 38, 56, 15);
		frmDataAggiungiGiorni.getContentPane().add(lblGiorno);
		
		JLabel lblMese = new JLabel("Mese");
		lblMese.setBounds(150, 38, 50, 15);
		frmDataAggiungiGiorni.getContentPane().add(lblMese);
		
		txgiorno = new JTextField();
		txgiorno.setColumns(10);
		txgiorno.setBounds(91, 36, 56, 19);
		frmDataAggiungiGiorni.getContentPane().add(txgiorno);
		
		txmese = new JTextField();
		txmese.setColumns(10);
		txmese.setBounds(195, 36, 56, 19);
		frmDataAggiungiGiorni.getContentPane().add(txmese);
		
		txanno = new JTextField();
		txanno.setColumns(10);
		txanno.setBounds(313, 36, 56, 19);
		frmDataAggiungiGiorni.getContentPane().add(txanno);
		
		JLabel lblAnno = new JLabel("Anno");
		lblAnno.setBounds(265, 38, 56, 15);
		frmDataAggiungiGiorni.getContentPane().add(lblAnno);
		
		JLabel lblInserireGiorniDa = new JLabel("Inserire Giorni da aggiungere alla data");
		lblInserireGiorniDa.setBounds(28, 104, 281, 15);
		frmDataAggiungiGiorni.getContentPane().add(lblInserireGiorniDa);
		
		txgiorniadd = new JTextField();
		txgiorniadd.setBounds(313, 102, 50, 19);
		frmDataAggiungiGiorni.getContentPane().add(txgiorniadd);
		txgiorniadd.setColumns(10);
		
		JButton btnDimmiSe = new JButton("Dimmi se è bisestile e dimmi la nuva data");
		btnDimmiSe.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int g=Integer.parseInt(txgiorno.getText());
				int m=Integer.parseInt(txmese.getText());
				int a=Integer.parseInt(txanno.getText());
				int gadd=Integer.parseInt(txgiorniadd.getText());
				Data d=new Data(g,m,a);
				JOptionPane.showMessageDialog(frmDataAggiungiGiorni, txgiorno.getText()+d.bisestile()+"La Nuova Data è:");
				
			}
		});
		btnDimmiSe.setBounds(48, 168, 340, 25);
		frmDataAggiungiGiorni.getContentPane().add(btnDimmiSe);
	}
}
Ora il bottone dovrebbe aprire una finestra e dirmi se l'anno è bisestile e la nuova data , i problemi sono 2 per utilizzare i metodi di Data ho dovuto estendere la classe FinestraProvaData ma ho problemi con il costruttore di super , inoltre non so copme usare il metodo addday() perchè eseguo un System.out.println quando avrei invece bisogno che mi restituisse tre int da utilizzare nella finestra del risultato.