Salve, allora praticamente mi serve sapere come si inserisce via codice una label e una text field.
Grazie mille!
Salve, allora praticamente mi serve sapere come si inserisce via codice una label e una text field.
Grazie mille!
Scusa ma l'avevi già chiesto qui e comunque sia lì che qui non hai ancora precisato come e dove vuoi inserirli, con quali criteri di layout, ecc....
Quindi cerca di essere più preciso. Cerca di descrivere a parole quello che vuoi fare, magari posta uno schema disegnato o anche solo fatto con i caratteri. Ma che almeno si capisca ....![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Beh, un codice di esempio veloce te lo posso anche postare
codice:import java.awt.*; import javax.swing.*; public class ProvaFrame extends JFrame { private JLabel labelNome; private JTextField textfieldNome; public ProvaFrame() { super("Prova Frame"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setSize(300, 200); JPanel pannello = new JPanel(); pannello.setLayout(new BoxLayout(pannello, BoxLayout.LINE_AXIS)); labelNome = new JLabel("Nome"); textfieldNome = new JTextField(); pannello.add(labelNome); pannello.add(textfieldNome); getContentPane().add(pannello, BorderLayout.NORTH); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new ProvaFrame().setVisible(true); } }); } }
Però dovresti poi cercare di comprendere bene i principali layout manager di AWT/Swing. Senza non vai molto lontano ..... (a meno di metterti ad usare il posizionamento "assoluto" che comunque di svantaggi ne ha o, peggio, di farti generare il codice da un GUI editor).
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Praticamente mi serve inserire una textfield dopo aver cliccato sul menù e quindi sul metodocodice:private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: }
e dopo aver inserito un testo nella textfield lo deve concatenare a una stringa? Si può fare?codice:private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt)
Il problema il tuo codice nel seguente metodo non mi funziona
Allora
Schermata 2014-03-24 alle 20.52.59.jpg
Praticamente dopo aver cliccato Crea tabelle mi si apre il seguene metodo:
Devo inserire una text field e una label in alto a sinistra. Non ha importanza come deve essere la text field e la label, anche semplici vanno bene.codice:private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) { }
Il punto è che forse non hai ancora compreso il concetto in generale: quindi lo esprimo appunto in modo abbastanza generico. Se in un contenitore già visibile vuoi aggiungere/rimuovere dei componenti, puoi farlo tranquillamente usando i vari add/remove sul contenitore. Il problema non è tanto questo ma se il contenitore usa o no un layout manager.
Se usa un layout manager, il layout va rivalidato e in genere basta un validate() invocato sul contenitore. Questo perlomeno vale per tutti i layout manager più semplici (es. BorderLayout, FlowLayout ecc...).
Se non usa un layout manager, chiaramente dovrai posizionare/dimensionare esplicitamente i nuovi componenti e oltre a questo basta un repaint() invocato sul contenitore.
Ti è più chiaro?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ecco ora la finestra si apre con i relativi text field, il problema e che voglio impostare una dimensione delle text field, come si procede?codice:private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JTextField b,c,d,e; Frame f=new Frame("Carica Database"); f.setSize(200,300); f.setLocation(100,100); f.setLayout(new GridLayout(3,2,10,20)); b=new JTextField(""); c=new JTextField(""); d=new JTextField(""); e=new JTextField(""); f.add(b); f.add(c); f.add(d); f.add(e); f.setVisible(true); }
Il punto è che con il codice che hai scritto non sono i JTextField ad "imporre" la propria dimensione. Invece è il GridLayout che considera le dimensioni del contenitore e lo suddivide in celle andando a "spartire" equamente tale spazio.
Inoltre hai usato Frame che è di AWT. Meglio se usi (ormai .. al giorno d'oggi) JFrame di Swing.
Non vorrei sembrare "cattivo" ma forse è meglio che ti armi di tanta pazienza e buona volontà e inizi a leggere dei libri/guide/tutorial su componenti e layout manager con un orientamento specifico verso Swing piuttosto che AWT.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet