DOMANDA aiutino in java, tasto avanti in un'unica finestra

Pubblicità

alex153

Nuovo Utente
Messaggi
50
Reazioni
3
Punteggio
26
salve a tutti, ho realizzato un'applicazione utilizzando i jframe tramite netbeans che calcola il bilancio d'esercizio di un'azienda inserendo i valori in appositi textfield, unico problema è che le varie voci di stato patrimoniale: attivo passivo e conto economico stanno tutte in un'unica finestra lunghissima, il che è brutto. vorrei quindi magari dichiarare per prima l'attivo dello stato patrimoniale, poi premere un tasto tipo "Avanti" sulle installazioni classiche dei programmi windows ed arrivare sempre nel medesimo pannello al passivo, ripremere il solito avanti una volta dichiarato il passivo e idem per il conto economico fino a giungere ai conti finali.

qualcuno sa come creare un tasto "Avanti" simil installazione programmi windows come sopra specificato?
ripeto, uso netbeans tramite jframe.

grazie :)
 
salve a tutti, ho realizzato un'applicazione utilizzando i jframe tramite netbeans che calcola il bilancio d'esercizio di un'azienda inserendo i valori in appositi textfield, unico problema è che le varie voci di stato patrimoniale: attivo passivo e conto economico stanno tutte in un'unica finestra lunghissima, il che è brutto. vorrei quindi magari dichiarare per prima l'attivo dello stato patrimoniale, poi premere un tasto tipo "Avanti" sulle installazioni classiche dei programmi windows ed arrivare sempre nel medesimo pannello al passivo, ripremere il solito avanti una volta dichiarato il passivo e idem per il conto economico fino a giungere ai conti finali.

qualcuno sa come creare un tasto "Avanti" simil installazione programmi windows come sopra specificato?
ripeto, uso netbeans tramite jframe.

grazie :)

Il codice qui sotto fa esattamente quel che chiedi. Può essere facilmente riadattato a fare tutto quello che ti serve. Per informazioni sul funzionamento dei Layout etc. chiedi a Google. :) Potrebbero esserci degli import non necessari perché ho usato un pezzo di vecchio codice che avevo scritto e non sono stato a correggere gli imports, sono sicuro che netbeans te li segnalerà.
Il codice è eseguibile e funzionante. Ciao.

Codice:
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;



public class FinestraAvantiDietro extends JFrame {
	int page;
	private GridBagLayout layout;
	private GridBagConstraints constraints;
	private GridBagLayout layoutSettings;
	private GridBagConstraints constraintsSettings;
	private JPanel pannel_setting;
	private JButton back;
	private JButton next;
	
	
	
	public FinestraAvantiDietro(){
		//Costruttore
		page=1;
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
		setSize(500,300);
		//impostazioni del layout
		layout=new GridBagLayout();
		constraints=new GridBagConstraints(); 
		setLayout(layout);
		layoutSettings=new GridBagLayout();
		constraintsSettings=new GridBagConstraints();
		//Pannello
		pannel_setting=new JPanel();
		pannel_setting.setBorder(javax.swing.BorderFactory.createEtchedBorder());
		pannel_setting.setLayout(layoutSettings);
		constraints.gridwidth = GridBagConstraints.REMAINDER;
		constraints.fill=GridBagConstraints.BOTH;
		constraints.weighty=1.0;
		constraints.weightx=1.0;
		layout.setConstraints(pannel_setting,constraints);
		add(pannel_setting);
		//Metodi per la generazione della prima pagina
		generateFirstPage();
		
		generateNextBack();




		
	}
	
	private void generateFirstPage(){
		//Questo metodo genera la prima pagina 

			pannel_setting.removeAll(); //cancella tutto ciò che c'è sul pannello...
			layoutSettings=new GridBagLayout(); //anche il layout....
			constraintsSettings=new GridBagConstraints(); 
			pannel_setting.setLayout(layoutSettings);
			pannel_setting.setBorder(BorderFactory.createTitledBorder("Pagina 1"));
			//OPerazioni del metodo. 
			//Questo metodo crea una label con scritto "pagina 1"
			JLabel lab=new JLabel ("Questa è la prima pagina!");
			constraintsSettings.anchor=GridBagConstraints.NORTHWEST;
			constraintsSettings.weightx=1;
			constraintsSettings.weighty=1;
			addComponent(lab);
			//Confermo le impostazioni e ridisegno la finestra
			pannel_setting.validate();
			pannel_setting.repaint();
		}

		private void generateSecondPage(){
		//Questo metodo genera la 2a pagina 

			pannel_setting.removeAll(); //cancella tutto ciò che c'è sul pannello...
			layoutSettings=new GridBagLayout(); //anche il layout....
			constraintsSettings=new GridBagConstraints(); 
			pannel_setting.setLayout(layoutSettings);
			pannel_setting.setBorder(BorderFactory.createTitledBorder("Pagina 2"));
			//OPerazioni del metodo. 
			//Questo metodo crea una label con scritto "pagina 2"
			JLabel lab=new JLabel ("Questa è la seconda pagina!");
			constraintsSettings.anchor=GridBagConstraints.NORTHWEST;
			constraintsSettings.weightx=1;
			constraintsSettings.weighty=1;
			addComponent(lab);
			//Confermo le impostazioni e ridisegno la finestra
			pannel_setting.validate();
			pannel_setting.repaint();
		}

		private void generateNextBack (){
			//Questo metodo genera i pulsanti
			
			back= new JButton ("back");	
			back.setEnabled(false);
			back.addActionListener(new java.awt.event.ActionListener() { //Action listener per il pulsante back
				public void actionPerformed(java.awt.event.ActionEvent e) {
					page-=1;
					next.setEnabled(true);
					switch (page){
					case 1: generateFirstPage(); back.setEnabled(false); break;
					case 2: generateSecondPage();break;
					default: break;
					}}});
			//Aggiungo il bottone....
			constraints.anchor=constraints.SOUTHWEST;
			constraints.weighty=0.0;
			constraints.weightx=0.0;
			constraints.gridwidth = 1;
			layout.setConstraints(back,constraints);
			add(back);
			//Bottone next....
			next= new JButton ("next");
			next.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					page+=1;
					back.setEnabled(true);
					switch (page){			
					case 1: generateFirstPage(); break;
					case 2: generateSecondPage(); next.setEnabled(false); break;  
					default: break;
					}}});

					constraints.anchor=constraints.SOUTHEAST;
			layout.setConstraints(next,constraints);
			add(next);
		}
		
		//Metodo che aggiunge un "Component"....
		private void addComponent(Component component){	
			
			layoutSettings.setConstraints(component,constraintsSettings);
			pannel_setting.add(component);	
		}

			//Il main
			public static void main(String args[]){
			FinestraAvantiDietro m = new FinestraAvantiDietro();
			m.setVisible(true);
			}

	
}
 
Pubblicità
Pubblicità
Indietro
Top