Salve, mi sto creando una interfaccia con Swing ma essendo la prima volta forse penso di essere in un vicolo cieco
allora...
ho un JMenu dove quando seleziono un item richiama un metodo
la struttura della gui ècodice:public void actionPerformed(ActionEvent evt) { Object source = evt.getActionCommand(); if(source.equals(nuovoBrano)) nuovo(); if(source.equals(modificaBrano)) modifica(); if(source.equals(apriBrano)) apri(); if(source.equals(salva)) salva(); if(source.equals(esci)) chiudi(); }
programma ->Jframe
titolo -> Jlabel in Jframe
body -> JFrame
quando richiamo uno dei metodi...esempio nuovo() non faccio altro che cancellare il contenuto di body e aggiungere i componenti che voglio e aggiornando il titolo
e fin qui non ho problema...poi con gli altri metodi, come salva, poichè la definizione dei JTextField è esterna ai metodi (interna alla classe), non ho problemi a recuperare il contenuto dei componenti che mi interessano....codice:labTitolo.setText("Nuovo titolo"); body.removeAll(); JPanel riga = new JPanel(); riga.setLayout(null); riga.setPreferredSize(new Dimension(programma.getSize().width, 30)); JTextField titoloBrano = new JTextField(); titoloBrano.setBounds(programma.getSize().width-360, 4, 350, 22); titoloBrano.setFont(new Font(f.getFontName(), 0, 18)); formTitolo = new JLabel("Titolo label"); formTitolo.setSize(150, 30); formTitolo.setFont(new Font(f.getFontName(), 0, 20)); riga.add(formTitolo); riga.add(titoloBrano); body.add(riga);
ora...il problema nasce al resize
ma la posizione dei componenti che sono dentro nuovo() non si modifica...come posso fare? La logica di strutturazione di una GUI a più pagine è corretta?codice:programma.addComponentListener(new ComponentListener(){ public void componentResized(ComponentEvent arg0) { programma.repaint(); } });
Mi scuso per la lunghezza del post ma non riuscivo a essere più conciso


Rispondi quotando