Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65

    Comunicare tra due jframe

    Salve ragazzi sto creando un piccolo programma per creare un preventivo vi posto la foto per esser piu chiaro preventivo.jpg il problema è questo che quando scrivo nella casella cliete e batto invio se ci sono due clienti uguali faccio uscire un secondo jframe dove visualizza i clienti ricercati all'iterno di una jtable quando si clicca su una riga si deve caricare il cliente presente nella riga nel jframe del preventivo.
    Come posso fare una cosa del genere????
    p.s l'ho gia fatto passando tutto per il costruttore ma cosi facendo devo chiudere e riaprire la maschera del preventivo .....

    Grazie a tutti e buon fine settimana

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    quando scrivo nella casella cliete e batto invio se ci sono due clienti uguali faccio uscire un secondo jframe dove visualizza i clienti ricercati all'iterno di una jtable quando si clicca su una riga si deve caricare il cliente presente nella riga nel jframe del preventivo.
    Innanzitutto forse sarebbe più appropriato aprire una dialog (e "modale") invece che un frame. Se fosse appunto una dialog modale, sarebbe relativamente facile. Ma tra due frame slegati, chiaramente la interazione va pensata bene. E questa, come ripeto spesso, è una di quelle solite questioni di "design" delle classi.

    Prova a leggere la discussione Aggiornare JList da altro JFrame in cui si è parlato di un contesto simile. Vedi se ti dà qualche indizio utile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    Caio andbin grazie per la risposta non ci avevo propio pensato xD
    Ultima modifica di dannos; 08-03-2016 a 22:41

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    ultima cosa ho fatto questo
    JTable t = new JTable();
    DefaultTableModel model = new DefaultTableModel();
    JDialog dialog = new JDialog(this);

    model.setColumnCount(8);
    String[] columnNames = {"CODICE", "DESCRIZIONE", "QTA", "UM", "PREZZO"};
    model.setColumnIdentifiers(columnNames);
    //model.setNumRows(1);
    t.setModel(model);


    dialog.setModal(true);
    dialog.setLocationRelativeTo(null);
    dialog.setTitle("Ricerca Cliente");
    dialog.add(t);
    dialog.setVisible(true);


    pero non riesco a vedere il titolo delle colonne in pratica mi esce questo

    Allegato 26942
    se provo ad ingrandire la dialog con il mouse mi esce vuota

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    ho provato ad inserire alcune colonne ed il risultato e questo
    cattura2.jpg
    in pratica non mi fa visualizzare i titoli della tabella

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    in pratica non mi fa visualizzare i titoli della tabella
    JTable di norma si inserisce come "view" di JScrollPane, perché in questo modo:
    a) Hai lo scrolling
    b) Hai il header
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    Grazie per le spiegazioni.... ho fatto in questo modo ma nnt l'header della tabella non esce ti posto il coidice:

    JTable t = new JTable();
    DefaultTableModel model = new DefaultTableModel();
    JDialog dialog = new JDialog(this);


    model.setColumnCount(8);
    String[] columnNames = {"CODICE", "RAGIONE SOCIALE", "INDIRIZZO",};
    model.setColumnIdentifiers(columnNames);
    model.setNumRows(3);
    t.setRowHeight(25);
    t.setModel(model);


    JScrollPane jpane = new JScrollPane(t);
    JPanel panel = new JPanel();
    panel.add(jpane);
    dialog.add(new JScrollPane(panel));

    dialog.setSize(650, 300);
    dialog.setModal(true);
    dialog.setLocationRelativeTo(null);
    dialog.setTitle("Ricerca Cliente");
    dialog.add(t);
    dialog.setVisible(true);

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    JScrollPane jpane = new JScrollPane(t);
    dialog.add(t);
    Stai comunque aggiungendo direttamente t (il JTable) nella dialog e questo lo toglie da dentro JScrollPane. Un componente ha solo 1 "parente" strutturalmente parlando. Non può stare in 2 posti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    grazieeeeeeeeeeeeeeeeeeeee finalmente ci sono riuscito.... scs per questi errore stupidi ma sono alle prime armi con java

    Cattura.jpg
    ora dovrei ingrandire la tabella quanto la dialog che ho settato in questo modo dialog.setSize(650, 300); per la tabella invece non so come fare ....

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    ora dovrei ingrandire la tabella quanto la dialog che ho settato in questo modo dialog.setSize(650, 300); per la tabella invece non so come fare ....
    Il punto è che hai fatto un po' di giri particolari. Hai messo il primo JScrollPane in un JPanel. JPanel ha per default un FlowLayout, che rispetta il "preferred" size dei componenti. E il preferred size di JScrollPane, se non sbaglio è quello del componente contenuto. Quindi le barre di scorrimento non dovresti mai vederle.
    Poi il JPanel l'hai messo in un altro JScrollPane. Questo sì scrolla ma il JTable ormai è alla sua dimensione preferita e non può occupare tutto lo spazio disponibile.

    Se vuoi che la tabella occupi tutto lo spazio (della dialog) e possa scrollare:

    JScrollPane jpane = new JScrollPane(t);
    dialog.add(jpane);

    Sì, tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.