Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Swing [JAVA]

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    41

    Swing [JAVA]

    Sto sviluppando l'interfaccia grafica della mia applicazione cn le swing,visto che ho qualche problema con l'uso della classe JDialog, vorrei sapere da voi come posso fare con le swing ad ottenere una situazione in cui ho una finestra principale ,poi al verificarsi di un particolare evento vorrei far comparire una nuova finestra per l'inserimento di alcuni dati.
    Come dicevo ho provato cn la classe JDialog ma stranamente se metto dei bottoni su di essa,l'evento dello schiacciamento del bottone mi viene riconosciuto due volte!!!


    grazie e aiutatemi

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ciao, puoi postare un po' del codice che hai scritto se non e' eccessivamente lungo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    41

    ecco un po' di codice

    public void actionPerformed(ActionEvent evt){

    // gestiamo l'evento
    Object src = evt.getSource(); // individuiamo il mittente della segnalazione

    else if (src == prodotto) prodottoGUI();

    else if (src == x) secondaMatrice(0);


    }

    public void prodottoGUI(){
    //istruzioni per far inserire la seconda matrice int[][] a

    popUp_matrice(x);
    }

    public void popUp_matrice(JButton button){

    table2=new JTable(m.getRows(),m.getColumns());
    popUp=new JDialog(this,"InserisciMatrice",true);
    popUp.setBounds(500,40,600,200);
    JPanel p=new JPanel();
    p.add(table2);
    p.add(button);
    popUp.add(p);
    button.addActionListener(this);

    //popUp.setDefaultCloseOperation(JFrame.HIDE_ON_CLOS E);
    System.out.println("Ho reso visibile la finestra");
    popUp.setVisible(true);
    }

    public void secondaMatrice(int op){
    //popUp.setVisible(false);
    int r= m.getRows();
    int c= m.getColumns();
    a=new double[r][c];
    for(int i=0;i<r;i++){
    for(int j=0;j<c;j++){
    String s=(String)table2.getValueAt(i,j);
    //System.out.print(s);
    Double k =new Double(s);
    a[i][j]=k.doubleValue();
    }
    }
    System.out.println("Ho preso i valori");
    popUp.setVisible(false);
    System.out.println("reso invisibile la finestra");
    //remove(popUp);
    try{

    switch(op)//questo è uno switch perchè c'è anche un'operazione di
    somma
    {
    case 0:
    m=remote_matrix.prodotto(m,a);//CHIAMATA RMI

    break;

    case 1: m=remote_matrix.somma(m,a);//CHIAMATA RMI
    break;
    }

    visualizzaMatrice();
    }catch(Exception e){System.out.println("Entrato
    nell'eccezione "+e.getMessage()+" "+ e.getCause());}

    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Non so se il problema e' questo, ma quante volte chiami il metodo prodottoGUI?
    Immagino che tu lo chiami ogni volta vuoi mostrare il JDialog.
    Ad ogni chiamata aggiungi un listener sul bottone, quindi la seconda volta l'evento viene intercettato due volte perche' hai due listener, la terza volta tre e cosi' via...
    Inoltre ci sono altri metodi nel resto del codice che aggiungono un listener al bottone?
    Ti conviene aggiungere il listener al bottone in un blocco di codice che sei sicuro di eseguire una volta sola (tipo un costruttore) oppure reistanziare il bottone ad ogni chiamata del metodo.
    Se il problema non era questo, sorry, ma e' la prima cosa che mi e' venuta in mente.

    codice:
    public void prodottoGUI(){
    //istruzioni per far inserire la seconda matrice int[][] a
    
    popUp_matrice(x);
    }
    
    public void popUp_matrice(JButton button){
    
    table2=new JTable(m.getRows(),m.getColumns());
    popUp=new JDialog(this,"InserisciMatrice",true);
    popUp.setBounds(500,40,600,200);
    JPanel p=new JPanel();
    p.add(table2);
    p.add(button);
    popUp.add(p);
    button.addActionListener(this);
    
    //popUp.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    System.out.println("Ho reso visibile la finestra");
    popUp.setVisible(true);
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    41
    grazie della risposta,solo per orgoglio personale ti dico che avevo risolto il problema ristanziando il bottone comunque molte grazie hai beccato in pieno il problema, senti non è che hai un contatto msn???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.