PDA

View Full Version : [JAVA] come settare correttamente le dimesioni di un frame


DesmoColo
22-09-2004, 11:46
Ciao a tutti!
Qua sotto trovate il codice di un interfaccia che ho costruito ed il relativo main; Se fate girare il programma vedete che è l'interfaccia per un generatore di codice fiscale. il problema è che vorrei sapere come posso fare a "fissare" la finestra ad una determinata posizione. Infatti se l'utente restringe la finestra, i campi si sovrappongono, mentre se la finestra viene allargata, si allontanano progressivamente.
PS: se potete darmi altri consigli su come migliorare tale interfaccia sono ben graditi! Dopotutto è la prima che ho fatto e non so se il modo di procedere è corretto ;-)


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* CodiceFiscaleGUI.java
*/

public class CodiceFiscaleGUI extends JFrame{

private JTextField campoCognome;
private JTextField campoNome;
private JTextField campoComune;
private JTextField campoProvincia;
private JTextField codice;
private JButton genButton;
private JComboBox campoGiornoDiNascita;
private JComboBox campoMeseDiNascita;
private JComboBox campoAnnoDiNascita;
private JRadioButton maschio;
private JRadioButton femmina;

public CodiceFiscaleGUI(){

final int DEFAULT_FRAME_WIDTH = 650;
final int DEFAULT_FRAME_HEIGTH = 300;
setSize(DEFAULT_FRAME_WIDTH,DEFAULT_FRAME_HEIGTH);
addWindowListener(new WindowCloser());

campoCognome = new JTextField(20);
campoNome = new JTextField(20);

campoGiornoDiNascita = new JComboBox();
campoMeseDiNascita = new JComboBox();
campoAnnoDiNascita = new JComboBox();

maschio = new JRadioButton("M");
femmina = new JRadioButton("F");

campoComune = new JTextField(20);
campoProvincia = new JTextField(2);


codice = new JTextField(16);
codice.setEditable(false);

genButton = new JButton("Genera!");
/*metodo ancora da fare per gestire gli eventi*/
//genButton.addActionListener(new ButtonListener());

Container contentPane = getContentPane();

JPanel campCognome = new JPanel();
campCognome.add(new JLabel("Cognome:"));
campCognome.add(campoCognome);

JPanel campNome = new JPanel();
campNome.add(new JLabel("Nome:"));
campNome.add(campoNome);



for(int i = 1; i <= 31; i++)
campoGiornoDiNascita.addItem(Integer.toString(i));

campoMeseDiNascita.addItem("GENNAIO");
campoMeseDiNascita.addItem("FEBBRAIO");
campoMeseDiNascita.addItem("MARZO");
campoMeseDiNascita.addItem("APRILE");
campoMeseDiNascita.addItem("MAGGIO");
campoMeseDiNascita.addItem("GIUGNO");
campoMeseDiNascita.addItem("LUGLIO");
campoMeseDiNascita.addItem("AGOSTO");
campoMeseDiNascita.addItem("SETTEMBRE");
campoMeseDiNascita.addItem("OTTOBRE");
campoMeseDiNascita.addItem("NOVEMBRE");
campoMeseDiNascita.addItem("DICEMBRE");

for(int i = 2004; i >= 1861; i--)
campoAnnoDiNascita.addItem(Integer.toString(i));

JPanel comboPanel = new JPanel();
comboPanel.add(new JLabel("Data di nascita:"));
comboPanel.add(campoGiornoDiNascita);
comboPanel.add(campoMeseDiNascita);
comboPanel.add(campoAnnoDiNascita);


ButtonGroup sceltaSesso = new ButtonGroup();
sceltaSesso.add(maschio);
sceltaSesso.add(femmina);

JPanel sessoPanel = new JPanel();
sessoPanel.add(new JLabel("Sesso:"));
sessoPanel.add(maschio);
sessoPanel.add(femmina);

JPanel comun = new JPanel();
comun.add(new JLabel("Comune"));
comun.add(campoComune);

JPanel prov = new JPanel();
prov.add(new JLabel("Provincia"));
prov.add(campoProvincia);

JPanel generator = new JPanel();
generator.add(genButton);
generator.add(codice);

contentPane.add(generator, "South");

JPanel gen = new JPanel();
gen.setLayout(new GridLayout(3,3));
gen.add(campCognome);
gen.add(campNome);
gen.add(comboPanel);
gen.add(sessoPanel);
gen.add(comun);
gen.add(prov);





contentPane.add(gen,"North");

}

private class WindowCloser extends WindowAdapter{

public void windowClosing(WindowEvent event){

System.exit(0);
}
}
}



/**
* GUImain.java
*/

public class GUImain {

public static void main(String[] args){

CodiceFiscaleGUI gui = new CodiceFiscaleGUI();

gui.setTitle("Codice Fiscale Generator");
gui.show();
}
}

cuoricinoblu
22-09-2004, 12:22
Ciao,
esa i metodi:
gui.setBounds(x, y, larghezza, altezza)
gui.setResizable(false)


public class GUImain {
public static void main(String[] args){
CodiceFiscaleGUI gui = new CodiceFiscaleGUI();
gui.setTitle("Codice Fiscale Generator");
gui.setBounds(10, 10, 300, 150);
gui.setResizable(false);
gui.show();
}
}


Buona giornata!
:coffee:

DesmoColo
22-09-2004, 13:01
grazie di nuovo!
Ciao