Ciao a tutti!
Ho un piccolo problema con java swing... o awt ancora non ho capito.
devo implementare un piccolo programmino che si basa su alcuni form.
ora...questi form non sono costruiti nè da applet nè da servlet, ma "semplicemente"
con l'ausilio di awt.event.
dove sta il problema...
dalla finestra principale posso accedere a diversi form.
ogni form ha i suoi bei campi per immettere i dati, e
poi 2 fantastici bottoni di "conferma" e "annulla" (fantasia zero...)
qui viene il bello...
Se pigio Conferma, riesco a memorizzare (forse) i dati della form.
Se pigio Annulla.... è un casino!
1) non succede nulla!
2) si chiude tutto il programma!
3) si apre la finestra di windows Proprietà Schermo!!!
Il codice che ho scritto (e scopiazzato...) è più o meno questo
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Form extends JFrame{
private JPanel firstpan = new JPanel();
private JPanel secondpan = new JPanel();
private Dati dati = new Dati();
private String nome, cognome, indir, tel;
public Form() {
super("Form");
setBounds(400,400, 320,320);
try {
Init();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void Init(){
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("Program exited with 0 executions");
System.exit(0);
}
});
firstpan.setSize(1,150);
firstpan.setLayout(new GridLayout(4,1));
firstpan.add(dati.Lnome);
firstpan.add(dati.TFnome);
firstpan.add(dati.Lcognome);
firstpan.add(dati.TFcogn);
firstpan.add(dati.Lindir);
firstpan.add(dati.TFindir);
firstpan.add(dati.Ltel);
firstpan.add(dati.TFtel);
dati.TFnome.getSelectedText();
dati.TFnome.addActionListener(new TextFieldHandler(dati.TFnome));
dati.TFcogn.addActionListener(new TextFieldHandler(dati.TFcogn));
dati.TFindir.addActionListener(new TextFieldHandler(dati.TFindir));
dati.TFtel.addActionListener(new TextFieldHandler(dati.TFtel));
dati.ok.addActionListener(new ButtonHandler(dati.ok));
dati.annulla.addActionListener(new ButtonHandler(dati.annulla));
secondpan.setLayout(new GridLayout(1, 2));
secondpan.setLayout(new GridLayout(1,2));
secondpan.add(dati.ok);
secondpan.add(dati.annulla);
getContentPane().add(BorderLayout.NORTH, firstpan);
getContentPane().add(BorderLayout.SOUTH, secondpan);
setVisible(true);
}
class TextFieldHandler implements ActionListener {
JTextField a = new JTextField();
public TextFieldHandler(JTextField eve) { a = eve;}
public void actionPerformed(ActionEvent e)
{
if( a == dati.TFnome){
nome=e.getActionCommand() + "\r ";
} else if(a == dati.TFcogn) {
cognome=e.getActionCommand() + "\r ";
} else if (a == dati.TFindir){
indir=e.getActionCommand() + "\r ";
}else if (a==dati.TFtel){
tel=e.getActionCommand()+ "\r ";
};
}
}
class ButtonHandler implements ActionListener {
JButton a = new JButton();
public ButtonHandler(JButton ric) {a=ric;}
public void actionPerformed(ActionEvent e) {
if (a == dati.ok) {
dati.conf=nome+cognome+indir+tel;
System.out.println(dati.conf);
} else if (a == dati.annulla){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Con questa oprazione non fa nulla!
// Con setDeafaultCloseOperation(Form.EXIT_ON_CLOSE); mi esce la finestra di propr dello schermo!!!
};
}
}
public static void main(String argv[]) {
Form f = new Form();
f.show();
}
}
Spero qualcuno possa darmi una mano....
grazie