Ho creato una semplice form con bottoni, textbox e JList
non appena compilo, il JPanel copre la JList lasciandomi vedere solamente i bottoni e le textBox.
Se però provo a ridimensionare la finestra riappare la JList.
Ho creato una semplice form con bottoni, textbox e JList
non appena compilo, il JPanel copre la JList lasciandomi vedere solamente i bottoni e le textBox.
Se però provo a ridimensionare la finestra riappare la JList.
Senza vedere il codice e senza sapere quale/i layout manager hai usato e come/dove hai disposto i componenti, sarebbe più facile vincere al superenalotto che rispondere alla tua domanda.Originariamente inviato da smok3
Ho creato una semplice form con bottoni, textbox e JList
non appena compilo, il JPanel copre la JList lasciandomi vedere solamente i bottoni e le textBox.
Se però provo a ridimensionare la finestra riappare la JList.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ho utlizzato netbeans per la realizzazione della GUI
Layout -> AbsoluteLayout
I componenti sono disposti all'interno di un unico JPanel
Codice della GUI
codice:private void initComponents() { mainPanel = new javax.swing.JPanel(); idPal = new javax.swing.JTextField(); labelId = new java.awt.Label(); palList = new java.awt.List(); label1 = new java.awt.Label(); label2 = new java.awt.Label(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); try { spotList =(java.awt.List)java.beans.Beans.instantiate(getClass().getClassLoader(), "disiporegia.DisipoRegiaView_spotList"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (java.io.IOException e) { e.printStackTrace(); } org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(disiporegia.DisipoRegiaApp.class).getContext().getResourceMap(DisipoRegiaView.class); mainPanel.setBackground(resourceMap.getColor("mainPanel.background")); // NOI18N mainPanel.setMaximumSize(new java.awt.Dimension(430, 350)); mainPanel.setMinimumSize(new java.awt.Dimension(430, 350)); mainPanel.setName("mainPanel"); // NOI18N mainPanel.setPreferredSize(new java.awt.Dimension(430, 350)); mainPanel.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); idPal.setText(resourceMap.getString("idPal.text")); // NOI18N idPal.setName("idPal"); // NOI18N mainPanel.add(idPal, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 10, 30, -1)); labelId.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N labelId.setName("labelId"); // NOI18N labelId.setText(resourceMap.getString("labelId.text")); // NOI18N mainPanel.add(labelId, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1)); palList.setBackground(resourceMap.getColor("palList.background")); // NOI18N palList.setName("palList"); // NOI18N palList.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { palListMousePressed(evt); } }); mainPanel.add(palList, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 80, 160, 190)); label1.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N label1.setName("label1"); // NOI18N label1.setText(resourceMap.getString("label1.text")); // NOI18N mainPanel.add(label1, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 60, -1, 10)); label2.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N label2.setName("label2"); // NOI18N label2.setText(resourceMap.getString("label2.text")); // NOI18N mainPanel.add(label2, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, -1, -1)); jButton1.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N jButton1.setName("jButton1"); // NOI18N jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton1MouseClicked(evt); } }); mainPanel.add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 280, -1, -1)); jButton2.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N jButton2.setName("jButton2"); // NOI18N jButton2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton2MouseClicked(evt); } }); mainPanel.add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 170, -1, -1)); jButton3.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N jButton3.setText(resourceMap.getString("jButton3.text")); // NOI18N jButton3.setName("jButton3"); // NOI18N jButton3.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton3MouseClicked(evt); } }); mainPanel.add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 10, -1, -1)); jButton4.setBackground(resourceMap.getColor("jButton3.background")); // NOI18N jButton4.setText(resourceMap.getString("jButton4.text")); // NOI18N jButton4.setName("jButton4"); // NOI18N jButton4.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton4MouseClicked(evt); } }); mainPanel.add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 10, -1, -1)); spotList.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { spotListMouseClicked(evt); } }); mainPanel.add(spotList, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 150, 230)); setComponent(mainPanel); }// </editor-fold>
a) Non uso e non conosco Eclipse/NetBeans e non conosco quel "suo" layout manager org.netbeans.lib.awtextra.AbsoluteLayout (anche se ovviamente posso immaginare come funziona).
b) Se quello che hai postato è tutto codice auto-generato da NetBeans, beh, allora è una gran schifezza.
c) Io suggerirei lo studio e l'utilizzo dei layout manager standard di AWT/Swing.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
perdonami ... ma se non sai rispondere o quanto meno se non hai le competenze (come descritto da te) non sprecare post forviando tutti quei utenti che magari in futuro potranno avere lo stesso problema
ti rispondo velocemente, spero tanto tu non lo prenda come offesa...
1.. Il codice generato da netbeans è una schifezza? manda una mail di protesta ad info@netbeans.org
2.. Per chi realizza progetti grossi, netbeans fa guadagnare molto tempo... secondo te se fosse di facile soluzione avrei postato?
3.. non conosci l'absoluteLayout... vorrà dire che forse dovrai riguardarti un po di javadoc
Per il resto, spero tanto che il topic rimanga pulito senza altri interventi come quest'ultimo.
Ritengo che il forum non sia una chat libera ma un luogo COSTRUTTIVO dove discutere, quindi atteniamoci al topic
Chiusa parentesi
A me sembravano più dei suggerimenti validi. Non è la prima volta che viene postato codice autogenerato da ambienti di tipo RAD che, lasciacelo dire, fa proprio pena: Io uso NetBeans, ma non lascio mai a lui il compito di scrivere il codice: quello lo scrivo io, così la manutenibilità aumenta.Originariamente inviato da smok3
perdonami ... ma se non sai rispondere o quanto meno se non hai le competenze (come descritto da te) non sprecare post forviando tutti quei utenti che magari in futuro potranno avere lo stesso problema
Sarebbero mail inutili...ti rispondo velocemente, spero tanto tu non lo prenda come offesa...
1.. Il codice generato da netbeans è una schifezza? manda una mail di protesta ad info@netbeans.org
Se tu avessi scritto il codice manualmente, ti garantisco che avresti risparmiato molto più tempo: in questo modo non sei in grado di comprendere la normale logica di funzionamento del programma, perdi giorni interi a capire come si chiamano i vati oggetti che hai posizionato e alla fine scopri che l'autogenerazione del codice non fa assolutamente guadagnare tempo, ma, al contrario, ne fa perdere moltissimo.2.. Per chi realizza progetti grossi, netbeans fa guadagnare molto tempo... secondo te se fosse di facile soluzione avrei postato?
come ti è già stato detto, quel LayoutManager è proprietario di NetBeans, non fa parte del core standard del JDK... chi sa programmare in Java e conosce la Documentazione queste cose le sa...3.. non conosci l'absoluteLayout... vorrà dire che forse dovrai riguardarti un po di javadoc
Perfettamente d'accordo: accetta le critiche che ti sono state mosse, anche perchè ti sono state mosse da una persona che reputo competente e con una lunga storia costruttiva su questo forum.Per il resto, spero tanto che il topic rimanga pulito senza altri interventi come quest'ultimo.
Ritengo che il forum non sia una chat libera ma un luogo COSTRUTTIVO dove discutere, quindi atteniamoci al topic
Chiusa parentesi
Se vuoi continuare ad utilizzare il codice autogenerato, senza chiederti se c'è la possibilità di ottenere lo stesso risultato con uno sforzo minore e un guadagno nella leggibilità del codice, con conseguente risparmio di tempo, sei liberissimo di farlo. Ma se qualcuno obietta a questa tua scelta, consigliandoti di cambiare strada per facilitare la vita a te e a chi (come in questo caso, gli utenti del forum) potrebbe aiutarti, non farne un dramma.
Per quel che riguarda il tuo problema, se avessi scelto di utilizzare i LayoutManager messi a disposizione dal core standard, invece di affiancarte un LayoutManager priprietario di cui solo NetBeans conosce il funzionamento, forse non avresti avuto questi problemi, che non è detto siano risolvibili, vista l'impossibilità di averne della documentazione, né la garanzia da parte di Sun del suo corretto funzionamento.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
per quanto scritto ... omissis ...
per quanto riguard il layout, so benissimo che è proprietario di netbeans ma chi sa programmare sa che non cambi nulla visto che è una sorta di free con coordinate assolute... cmq
ritornando a noi, ho seguito il tuo consiglio ed ho impostato un layout standard (il Free), ma purtroppo da lo stesso problema
Carica il frame, fa vedere per una frazione di secondo i componenti e poi li nasconde, devo allargare l'immagine per farli riportare in primo piano
Questo solitamente accade quando i componenti vengono aggiunti dopo il setVisible(true) sulla finestra o comunque dopo che il componente contenitore è stato visualizzato o aggiunto al suo parent.
Se non è possibile spostare prima queste aggiunte o spostare dopo le visualizzazioni allora è necessario richiamare un validate() alla fine di queste operazioni, magari forzando anche un doLayout() e un repaint().
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Originariamente inviato da LeleFT
Questo solitamente accade quando i componenti vengono aggiunti dopo il setVisible(true) sulla finestra o comunque dopo che il componente contenitore è stato visualizzato o aggiunto al suo parent.
Se non è possibile spostare prima queste aggiunte o spostare dopo le visualizzazioni allora è necessario richiamare un validate() alla fine di queste operazioni, magari forzando anche un doLayout() e un repaint().
Ciao.![]()
perfetto ora va.
Thx per l'aiuto