ciao a tutti!!
c'è una cosa che non capisco quando creo una Jdialog...Se nel frame inziale ho un solo bottone questo mi apre la JDialog tranquillamente. Se invece nel mio frame originario ho una griglia di bottoni (ad esempio dei posti da prenotare) e poi clicco sul bottone "Prenota", questo mi apre più JDialog uguali, probabilmente quanti sono i bottoni della griglia. COme mai? in cosa sbaglio??
questo è il frame iniziale..
[CODE import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Casa extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private JButton[][] b;
String[]lettere={"a","b","c","d","e","f","g","h","i","j"};
String []numeri={"1","2","3","4","5","6","7","8","9","10"};
private JDialog d1;
private Dialog d;
private JButton conferma;
public Casa(){
conferma=new JButton("Effettua la prenotazione");
b=new JButton[10][10];
JPanel p= new JPanel();
p.setLayout(new GridLayout(10,10,0,0));
for(int i=0;i<lettere.length;i++){
for(int k=0;k<numeri.length;k++){
b[i][k]=new JButton(lettere[i]+numeri[k]);
b[i][k].setBackground(Color.GREEN);
p.add(b[i][k]);
}
this.add(p,BorderLayout.CENTER);
JPanel p1=new JPanel(new BorderLayout());
p1.setLayout(new GridLayout(1,2,2,2));
p1.add(conferma);
conferma.addActionListener(this);
this.add(p1,BorderLayout.SOUTH);
this.setPreferredSize(new Dimension(800,650));
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CL OSE);
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("Effettua la prenotazione")){
final JDialog d1=new JDialog();
d=new Dialog(this);
d1.add(d);
d1.setVisible(true);
d1.pack();
d1.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLO SE);
}
else if (arg0.getActionCommand().equals("OK")){
d.getstampa();
}
else if(arg0.getActionCommand().equals("Annulla")){
d1.dispose();
}
}
public static void main(String[]args){
Runnable r= new Runnable(){
public void run(){
new Casa();
}
};
EventQueue.invokeLater(r);
}
}[/CODE]
Questa è la Dialog..
HELP!!THANKS..codice:import java.awt.BorderLayout; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JButton; public class Dialog extends JPanel{ /** * */ private static final long serialVersionUID = 1L; private JLabel l1,l2; private JTextField t1,t2; private JButton ok,annulla; Casa c; public Dialog(Casa c){ this.c=c; l1=new JLabel("Nome"); l2= new JLabel("Password"); t1=new JTextField(30); t2=new JTextField(30); ok=new JButton("OK"); annulla=new JButton("Annulla"); JPanel p= new JPanel(new BorderLayout()); p.setLayout(new GridLayout(3,2,4,4)); p.add(l1); p.add(t1); p.add(l2); p.add(t2); p.add(ok); ok.addActionListener(c); p.add(annulla); annulla.addActionListener(c); this.add(p); } public void getstampa(){ System.out.println("Nome: "+t1.getText()); System.out.println("Password: "+t2.getText()); } public JTextField getT1() { return t1; } public void setT1(JTextField t1) { this.t1 = t1; } public JTextField getT2() { return t2; } public void setT2(JTextField t2) { this.t2 = t2; } }

Rispondi quotando