Autore |
Messaggio |
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
Piccolo problema di programmazione in java
qualcuno può darmi una mano???So che è una cosa specifica e non facile da ricordare ma se qualcuno potesse aiutarmi non sarebbe male
Dopo aver realizzato un JPanel utilizzato per un intero software di configurazione mi sono reso conto che era necessario inserire la funzione di scroll..per questo ho aggiunto un jscrollpane però purtroppo non scrolla. Avevo pensato che il motivo potrebbe essere che il JscrollPane si ridimensiona automaticamente come il Jpanel ma settando le dimensioni del JScrollPane con setPreferredSize non è cambiato nulla.Cosa sbaglio??
Grazie in anticipo per l'aiuto..Di seguito il codice:
private JPanel createTitlePanel() {
CMASLabel lblTitle = new CMASLabel(panelProperties.getProperty("Title"), 1, 21, SwingConstants.CENTER, new Rectangle(0, 0, 350, 25));
JPanel panelTitle = new JPanel();
panelTitle.setLayout(new BorderLayout());
panelTitle.setMinimumSize(new Dimension(100, 30));
panelTitle.setPreferredSize(new Dimension(100, 30));
panelTitle.add(lblTitle, BorderLayout.CENTER);
return panelTitle;
}
protected JPanel createDetailPanel() {
JPanel detailPanel = new JPanel();
detailPanel.setLayout(new BorderLayout());
return detailPanel;
}
public void jbInit() {
JPanel panelData = new JPanel();
panelData.setLayout(new BorderLayout());
JScrollPane sp = new JScrollPane(panelData);
sp.setVerticalScrollBarPolicy(sp.VERTICAL_SCROLLBAR_ALWAYS);
sp.setHorizontalScrollBarPolicy(sp.HORIZONTAL_SCROLLBAR_AS_NEEDED);
sp.setPreferredSize(new Dimension(100,100));
if (!panelProperties.getProperty("Title").trim().equals(""))
panelData.add(createTitlePanel(), BorderLayout.NORTH);
panelData.add(createDetailPanel(), BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.setBackground(Color.lightGray);
this.setForeground(Color.lightGray);
this.add(panelButton, BorderLayout.NORTH);
this.add(sp, BorderLayout.CENTER);
}
Ho dato per scontato che gli oggetti che utilizzano questa struttura si inizializzano richiamando il metodo jbInit() che ho postato.
Probabilmente settare un preferred size per lo scroll pane in questo caso è inutile (e non ha effetto). BorderLayout per la parte CENTER ignora e quindi non rispetta il preferred size del componente.Quindi potrei risolvere il problema senza modificare il layout?o devo cambiarlo necessariamente?
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
lunedì 23 marzo 2009, ore 11:53 |
|
|
ryoga
City Soldier
Data iscrizione: sabato 7 ottobre 2006, ore 19:48 Messaggi: 20228 Località: Gela - Brescia
Karma: 87 punti
|
Re: Piccolo problema di programmazione in java
prova a darici na sbattuta....
_________________ O BRIGANTE O EMIGRANTE! ...per ora emigrante...
io AMO la mia città io ODIO la mafia, odio i mafiosi
http://www.ilportaledelsud.org
|
lunedì 23 marzo 2009, ore 19:08 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
Re: Piccolo problema di programmazione in java
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
martedì 24 marzo 2009, ore 9:34 |
|
|
ryoga
City Soldier
Data iscrizione: sabato 7 ottobre 2006, ore 19:48 Messaggi: 20228 Località: Gela - Brescia
Karma: 87 punti
|
Re: Piccolo problema di programmazione in java
_________________ O BRIGANTE O EMIGRANTE! ...per ora emigrante...
io AMO la mia città io ODIO la mafia, odio i mafiosi
http://www.ilportaledelsud.org
|
martedì 24 marzo 2009, ore 9:46 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
Re: Piccolo problema di programmazione in java
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
martedì 24 marzo 2009, ore 12:07 |
|
|
Caravigghiaro
City Keys Owner!
Data iscrizione: lunedì 27 ottobre 2008, ore 10:07 Messaggi: 4048 Località: Gela,Milano,...e me fermu cà..
Karma: 7 punti
|
meidei meidei lukeman chiama uomo macchina ..........ripeto meidei meidei lukeman chiama uomo macchina
ps:non so come si scrive
_________________
|
martedì 24 marzo 2009, ore 15:41 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
uomo macchina essere impagnato
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
martedì 24 marzo 2009, ore 17:23 |
|
|
Caravigghiaro
City Keys Owner!
Data iscrizione: lunedì 27 ottobre 2008, ore 10:07 Messaggi: 4048 Località: Gela,Milano,...e me fermu cà..
Karma: 7 punti
|
allora tu tanto studiare!!
_________________
|
martedì 24 marzo 2009, ore 17:52 |
|
|
ingnuccio
City Keys Owner!
Data iscrizione: sabato 5 gennaio 2008, ore 18:52 Messaggi: 1256
Karma: 10 punti
|
Sia lo scrollPane che il panel sono due oggetti containers! Quindi in teoria è già sbagliato utilizzarli entrambi!
Ti consiglio di utilizzare dei tools adatti per fare la grafica in java (vedi eclipse o netbeans), sono molto più intuitivi e sicuramente perderai molto meno tempo nel realizzare la grafica.
Detto questo prova a risolvere in questo modo:
Se non ho capito male tu crei un panel tilte ed un panel detail, questi 2 panel li aggiungi ad un altro panel e poi aggiungi quest'ultimo panel al contenitore scroll; infine suppongo che tu aggiunga il contenitore scroll al form assieme ad un panel button.
Ti riporto il codice sistemato prova a vedere se ti funziona:
private JPanel createTitlePanel() {
CMASLabel lblTitle = new CMASLabel(panelProperties.getProperty("Title"), 1, 21, SwingConstants.CENTER, new Rectangle(0, 0, 350, 25));
JPanel panelTitle = new JPanel();
panelTitle.setLayout(new BorderLayout());
panelTitle.setMinimumSize(new Dimension(100, 30));
panelTitle.setPreferredSize(new Dimension(100, 30));
panelTitle.add(lblTitle, BorderLayout.CENTER);
return panelTitle;
}
protected JPanel createDetailPanel() {
JPanel detailPanel = new JPanel();
detailPanel.setLayout(new BorderLayout());
return detailPanel;
}
public void jbInit() {
JPanel panelData = new JPanel();
panelData.setLayout(new BorderLayout());
panelData.setPreferredSize(new Dimension(100, 1000));
JScrollPane sp = new JScrollPane();
sp.setViewportView(panelData);
if (!panelProperties.getProperty("Title").trim().equals(""))
panelData.add(createTitlePanel(), BorderLayout.NORTH);
panelData.add(createDetailPanel(), BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.setBackground(Color.lightGray);
this.setForeground(Color.lightGray);
this.add(panelButton, BorderLayout.NORTH);
this.getContentPane().add(sp, java.awt.BorderLayout.CENTER);
this.pack();
}
Spero di esserti stato di aituo
_________________ Nulla si crea, nulla si distrugge, tutto si trasforma
http://www.nucciodipaola.it/ http://www.homatron.it/ http://www.fipavcaltanissetta.com/ http://www.srisc.com/
|
mercoledì 25 marzo 2009, ore 12:01 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
| | | | ingnuccio ha scritto: Sia lo scrollPane che il panel sono due oggetti containers! Quindi in teoria è già sbagliato utilizzarli entrambi! Ti consiglio di utilizzare dei tools adatti per fare la grafica in java (vedi eclipse o netbeans), sono molto più intuitivi e sicuramente perderai molto meno tempo nel realizzare la grafica. Detto questo prova a risolvere in questo modo: Se non ho capito male tu crei un panel tilte ed un panel detail, questi 2 panel li aggiungi ad un altro panel e poi aggiungi quest'ultimo panel al contenitore scroll; infine suppongo che tu aggiunga il contenitore scroll al form assieme ad un panel button. Ti riporto il codice sistemato prova a vedere se ti funziona: private JPanel createTitlePanel() { CMASLabel lblTitle = new CMASLabel(panelProperties.getProperty("Title"), 1, 21, SwingConstants.CENTER, new Rectangle(0, 0, 350, 25)); JPanel panelTitle = new JPanel(); panelTitle.setLayout(new BorderLayout()); panelTitle.setMinimumSize(new Dimension(100, 30)); panelTitle.setPreferredSize(new Dimension(100, 30)); panelTitle.add(lblTitle, BorderLayout.CENTER); return panelTitle; } protected JPanel createDetailPanel() { JPanel detailPanel = new JPanel(); detailPanel.setLayout(new BorderLayout()); return detailPanel; } public void jbInit() { JPanel panelData = new JPanel(); panelData.setLayout(new BorderLayout()); panelData.setPreferredSize(new Dimension(100, 1000)); JScrollPane sp = new JScrollPane(); sp.setViewportView(panelData); if (!panelProperties.getProperty("Title").trim().equals("")) panelData.add(createTitlePanel(), BorderLayout.NORTH); panelData.add(createDetailPanel(), BorderLayout.CENTER); this.setLayout(new BorderLayout()); this.setBackground(Color.lightGray); this.setForeground(Color.lightGray); this.add(panelButton, BorderLayout.NORTH); this.getContentPane().add(sp, java.awt.BorderLayout.CENTER); this.pack(); } Spero di esserti stato di aituo | | | | |
grazie mille...
cmq uso già il netbeans ma sto modificando un software realizzato da un'altra persona e non posso permettermi grossi cambiamenti perchè potrebbero avere effetti disastrosi dul resto...
Il metodo pack() non me lo riconosce...cosa devo importare?
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
mercoledì 25 marzo 2009, ore 13:34 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
funziona anche senza pack!!!:-)
grazie mille!!!
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
mercoledì 25 marzo 2009, ore 13:40 |
|
|
ingnuccio
City Keys Owner!
Data iscrizione: sabato 5 gennaio 2008, ore 18:52 Messaggi: 1256
Karma: 10 punti
|
Il metodo pack non lo riconosce perchè tu sicuramente non aggiungi il tutto ad un form ma ad un altro panel sicuramente!!
Quindi il tuo this è un panel!
Cmq come hai notato funziona anche senza pack(), perchè quest'ultimo è un metodo utlizzato per sistemare la visualizzazione dei componenti di un form.
_________________ Nulla si crea, nulla si distrugge, tutto si trasforma
http://www.nucciodipaola.it/ http://www.homatron.it/ http://www.fipavcaltanissetta.com/ http://www.srisc.com/
|
mercoledì 25 marzo 2009, ore 14:48 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
ottimo...non pensavo che avrei fatto il softwarista da grande ma mi sto appassionando
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
mercoledì 25 marzo 2009, ore 14:51 |
|
|
ingnuccio
City Keys Owner!
Data iscrizione: sabato 5 gennaio 2008, ore 18:52 Messaggi: 1256
Karma: 10 punti
|
Meglio che non ti ci appassioni!! Fino a quando le cose sono semplici allora il tutto sembra facile e provi una sensazione di soddisfazione quando risolvi qualcosa, il problema è che quando le cose si complicano per risolverle a volte non ci dormirai la notte anche se però la sensazione di soddisfazione aumenterà una volta risolta la cosa!!!
In pratica ogni softwarista ha dentro di se il gene della pazzia
_________________ Nulla si crea, nulla si distrugge, tutto si trasforma
http://www.nucciodipaola.it/ http://www.homatron.it/ http://www.fipavcaltanissetta.com/ http://www.srisc.com/
|
mercoledì 25 marzo 2009, ore 15:03 |
|
|
lukeman83
City Keys Owner!
Data iscrizione: venerdì 17 ottobre 2008, ore 15:59 Messaggi: 2472 Località: Gela-Catania
Karma: 0 punti
|
cmq per quello che ne so io sarebbe meglio non utilizzare il metodo equals perchè non è molto stabile...converrebbe cambiare:
if (!panelProperties.getProperty("Title").trim().equals(""))
in
if (panelProperties.getProperty("Title").trim().length()!=0)
_________________ In attesa dell'estate gelese piena di sorprese...
La felicità non è avere quello che si desidera, ma desiderare quello che si ha!!!
|
mercoledì 25 marzo 2009, ore 15:08 |
|
|