Salve,
la situazione è questa :
1)faccio partire il pannello contenente il menù principale con un jlabel e un jtextfield
2)digitando a+invio si apre un secondo menù con due jtextfield e due jlabel
3)nel primo jtextfield digito 10+invio e viene visualizzato un jdialog
4)nel secondo htextfield digito a+invio per tornare al menù principale
5)dal menù principale digito a+invio e ritorno al menù secondario
6)dal primo jtextfield digito 10+invio e vengono visualizzti due jdialog invece di uno....
in pratica il numero di jdialog visualizzati è uguale al numero di volte che entro nel menù secondario.
come mai?
il codice è il seguente:
classe principale
classe secondariacodice:import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class Test { Test2 t=new Test2(); JFrame fin=new JFrame(); JPanel pan=new JPanel(); JLabel L=new JLabel(); JTextField T=new JTextField(); public Test() { } public void gui() { L = new javax.swing.JLabel(); T = new javax.swing.JTextField(); T.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { Kscelte(evt); } }); t.getScelta().addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { Kscelte2(evt); } }); fin.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); L.setText("jLabel1"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(pan); pan.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(48, 48, 48) .addComponent(L) .addGap(18, 18, 18) .addComponent(T, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(216, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(62, 62, 62) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(L) .addComponent(T, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(218, Short.MAX_VALUE)) ); mostra(); } private void mostra() { fin.add(pan); fin.pack(); fin.setVisible(true); fin.validate(); } private void Kscelte(java.awt.event.KeyEvent evt) { if (evt.getKeyChar()==KeyEvent.VK_ENTER) { String prv=T.getText(); if (prv.equalsIgnoreCase("a")) { pan.removeAll(); pan=t.pan_ins(); mostra(); } }//fine enter } private void Kscelte2(java.awt.event.KeyEvent evt) { if (evt.getKeyChar()==KeyEvent.VK_ENTER) { String prv=T.getText(); if (prv.equalsIgnoreCase("a")) { pan.removeAll(); gui(); } }//fine enter } public static void main(String[] args) { Test tt=new Test(); tt.gui(); } }
codice:import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; public class Test2 extends DATI{ public JFrame fra=new JFrame(); public JPanel pan_ins() { JPanel pan=new JPanel(); pivaT.setText(""); pivaL.setText("PROVA"); KeyListener k9=new KeyListener() { public void keyTyped(KeyEvent e) { // } public void keyPressed(KeyEvent e) { int evt=e.getKeyCode(); if ((evt==KeyEvent.VK_ENTER)) { int div=Integer.parseInt(pivaT.getText()); if (div==10) { JOptionPane.showMessageDialog(fra, "NUMERO NON VALIDO"); } e.consume(); }//controllo p.iva } public void keyReleased(KeyEvent e) { //throw new UnsupportedOperationException("Not supported yet."); } }; pivaT.addKeyListener(k9); sceltaL.setText("1 - CONFERMA S/N"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(pan); pan.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(48, 48, 48) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addComponent(sceltaL) .addGap(18, 18, 18) .addComponent(sceltaT)) .addGroup(layout.createSequentialGroup() .addComponent(pivaL) .addGap(18, 18, 18) .addComponent(pivaT, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(216, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(62, 62, 62) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(pivaL) .addComponent(pivaT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(sceltaL) .addComponent(sceltaT, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(187, Short.MAX_VALUE)) ); return pan; } public JTextField getScelta() { return sceltaT; } }



Rispondi quotando