franksisca
03-09-2010, 09:37
Ancora una volta mi trovo a combattere con questi "maledetti" layout!!!
allego immagine per chiarire meglio:
http://a.imageshack.us/img265/5517/immagineql.th.png (http://img265.imageshack.us/i/immagineql.png/)
Uploaded with ImageShack.us (http://imageshack.us)
ora mi chiedop (e dopo vi incollo il codice) perchè la disposizione dei pulsanti non è come dico io?
vorrei che i pulsanti, tranne l'ultimo che mi sta anche bene (cambiando magari la dimensione dello stesso ingrandendolo e accorciandolo) si distribuiscano equamente nello spazio.
package view;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class GestioneCampionato extends JPanel implements Observer {
private static final long serialVersionUID = 1L;
private JList elencoSquadre, squadreIscritte;
private JScrollPane scrollerTeam, scrollerIscritti;
private JButton aggiungSquadra, rimuoviSquadra, generaAccomppiamenti;
private JComboBox tipologiaAccoppiamenti;
private JLabel anteprimaDettagli;
private GridBagLayout layout;
private GridBagConstraints limiti;
public GestioneCampionato() {
super();
this.init();
}
private void init() {
// TODO codice del metodo init
this.inizializzaComponenti();
this.settaComponenti();
this.aggiungiComponenti();
this.aggiugniAzioni();
}
private void inizializzaComponenti() {
// TODO codice del metodo inizializzaComponenti
this.elencoSquadre = new JList();
this.squadreIscritte = new JList();
this.scrollerIscritti=new JScrollPane(this.squadreIscritte);
this.scrollerTeam=new JScrollPane(this.elencoSquadre);
this.aggiungSquadra = new JButton("Aggiungi Team Selezionato");
this.rimuoviSquadra = new JButton("Rimuovi Team Selezionato");
this.generaAccomppiamenti = new JButton("Genera Accoppiamenti");
this.tipologiaAccoppiamenti = new JComboBox();
this.anteprimaDettagli = new JLabel("anteprima");
this.layout = new GridBagLayout();
this.limiti = new GridBagConstraints();
}
private void settaComponenti() {
// TODO codice del metodo settaComponenti
this.createSizeFixer(this.aggiungSquadra);
this.createSizeFixer(this.rimuoviSquadra);
this.createSizeFixer(this.generaAccomppiamenti);
this.createSizeFixer(this.tipologiaAccoppiamenti);
this.elencoSquadre
.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.squadreIscritte
.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.tipologiaAccoppiamenti.addItem("Tabellone Finale");
this.tipologiaAccoppiamenti.addItem("Gironi da 4 squadre");
this.tipologiaAccoppiamenti.addItem("Gironi da 6 squadre");
this.tipologiaAccoppiamenti.addItem("Gironi da 8 squadre");
this.limiti.insets.bottom = 10;
this.limiti.insets.right = 10;
this.limiti.insets.left = 10;
this.limiti.insets.top = 10;
this.setLayout(this.layout);
}
private void set(GridBagConstraints lim, int posizioneX, int posizioneY,
int celleOccupateLarghezza, int celleOccupateAltezza,
int riempimento, int ancoraggio, double weightx, double weighty) {
lim.gridx = posizioneY;
lim.gridy = posizioneX;
lim.gridwidth = celleOccupateLarghezza;
lim.gridheight = celleOccupateAltezza;
lim.anchor = ancoraggio;
lim.fill = riempimento;
lim.weightx = weightx;
lim.weighty = weighty;
}
private void aggiungiComponenti() {
// TODO codice del metodo aggiungiComponenti
this.set(this.limiti, 0, 0, 1, 4, GridBagConstraints.VERTICAL,
GridBagConstraints.FIRST_LINE_START, 0, 1);
this.add(this.scrollerTeam, this.limiti);
this.set(this.limiti, 0, 2, 1, 3, GridBagConstraints.VERTICAL,
GridBagConstraints.LINE_END, 0, 1);
this.add(this.scrollerIscritti, this.limiti);
this.set(this.limiti, 0, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.aggiungSquadra, this.limiti);
this.set(this.limiti, 1, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.rimuoviSquadra, this.limiti);
this.set(this.limiti, 2, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.anteprimaDettagli, this.limiti);
this.set(this.limiti, 3, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.tipologiaAccoppiamenti, this.limiti);
this.set(this.limiti, 4, 1, 2, 1, GridBagConstraints.HORIZONTAL,
GridBagConstraints.CENTER, 1, 0);
this.add(this.generaAccomppiamenti, this.limiti);
}
private void aggiugniAzioni() {
// TODO codice del metodo aggiugniAzioni
}
private void createSizeFixer(final Component component) {
component.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
component.removeComponentListener(this);
Dimension size = component.getSize();
component.setPreferredSize(size);
component.setMinimumSize(size);
component.setMaximumSize(size);
}
});
}
@Override
public void update(Observable arg0, Object arg1) {
// TODO codice del metodo update
}
}
manca la classe di visualizzazione, ma non l'ho fatta manco io ancora X_X
allego immagine per chiarire meglio:
http://a.imageshack.us/img265/5517/immagineql.th.png (http://img265.imageshack.us/i/immagineql.png/)
Uploaded with ImageShack.us (http://imageshack.us)
ora mi chiedop (e dopo vi incollo il codice) perchè la disposizione dei pulsanti non è come dico io?
vorrei che i pulsanti, tranne l'ultimo che mi sta anche bene (cambiando magari la dimensione dello stesso ingrandendolo e accorciandolo) si distribuiscano equamente nello spazio.
package view;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class GestioneCampionato extends JPanel implements Observer {
private static final long serialVersionUID = 1L;
private JList elencoSquadre, squadreIscritte;
private JScrollPane scrollerTeam, scrollerIscritti;
private JButton aggiungSquadra, rimuoviSquadra, generaAccomppiamenti;
private JComboBox tipologiaAccoppiamenti;
private JLabel anteprimaDettagli;
private GridBagLayout layout;
private GridBagConstraints limiti;
public GestioneCampionato() {
super();
this.init();
}
private void init() {
// TODO codice del metodo init
this.inizializzaComponenti();
this.settaComponenti();
this.aggiungiComponenti();
this.aggiugniAzioni();
}
private void inizializzaComponenti() {
// TODO codice del metodo inizializzaComponenti
this.elencoSquadre = new JList();
this.squadreIscritte = new JList();
this.scrollerIscritti=new JScrollPane(this.squadreIscritte);
this.scrollerTeam=new JScrollPane(this.elencoSquadre);
this.aggiungSquadra = new JButton("Aggiungi Team Selezionato");
this.rimuoviSquadra = new JButton("Rimuovi Team Selezionato");
this.generaAccomppiamenti = new JButton("Genera Accoppiamenti");
this.tipologiaAccoppiamenti = new JComboBox();
this.anteprimaDettagli = new JLabel("anteprima");
this.layout = new GridBagLayout();
this.limiti = new GridBagConstraints();
}
private void settaComponenti() {
// TODO codice del metodo settaComponenti
this.createSizeFixer(this.aggiungSquadra);
this.createSizeFixer(this.rimuoviSquadra);
this.createSizeFixer(this.generaAccomppiamenti);
this.createSizeFixer(this.tipologiaAccoppiamenti);
this.elencoSquadre
.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.squadreIscritte
.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.tipologiaAccoppiamenti.addItem("Tabellone Finale");
this.tipologiaAccoppiamenti.addItem("Gironi da 4 squadre");
this.tipologiaAccoppiamenti.addItem("Gironi da 6 squadre");
this.tipologiaAccoppiamenti.addItem("Gironi da 8 squadre");
this.limiti.insets.bottom = 10;
this.limiti.insets.right = 10;
this.limiti.insets.left = 10;
this.limiti.insets.top = 10;
this.setLayout(this.layout);
}
private void set(GridBagConstraints lim, int posizioneX, int posizioneY,
int celleOccupateLarghezza, int celleOccupateAltezza,
int riempimento, int ancoraggio, double weightx, double weighty) {
lim.gridx = posizioneY;
lim.gridy = posizioneX;
lim.gridwidth = celleOccupateLarghezza;
lim.gridheight = celleOccupateAltezza;
lim.anchor = ancoraggio;
lim.fill = riempimento;
lim.weightx = weightx;
lim.weighty = weighty;
}
private void aggiungiComponenti() {
// TODO codice del metodo aggiungiComponenti
this.set(this.limiti, 0, 0, 1, 4, GridBagConstraints.VERTICAL,
GridBagConstraints.FIRST_LINE_START, 0, 1);
this.add(this.scrollerTeam, this.limiti);
this.set(this.limiti, 0, 2, 1, 3, GridBagConstraints.VERTICAL,
GridBagConstraints.LINE_END, 0, 1);
this.add(this.scrollerIscritti, this.limiti);
this.set(this.limiti, 0, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.aggiungSquadra, this.limiti);
this.set(this.limiti, 1, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.rimuoviSquadra, this.limiti);
this.set(this.limiti, 2, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.anteprimaDettagli, this.limiti);
this.set(this.limiti, 3, 1, 1, 1, GridBagConstraints.BOTH,
GridBagConstraints.CENTER, 0, 0);
this.add(this.tipologiaAccoppiamenti, this.limiti);
this.set(this.limiti, 4, 1, 2, 1, GridBagConstraints.HORIZONTAL,
GridBagConstraints.CENTER, 1, 0);
this.add(this.generaAccomppiamenti, this.limiti);
}
private void aggiugniAzioni() {
// TODO codice del metodo aggiugniAzioni
}
private void createSizeFixer(final Component component) {
component.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
component.removeComponentListener(this);
Dimension size = component.getSize();
component.setPreferredSize(size);
component.setMinimumSize(size);
component.setMaximumSize(size);
}
});
}
@Override
public void update(Observable arg0, Object arg1) {
// TODO codice del metodo update
}
}
manca la classe di visualizzazione, ma non l'ho fatta manco io ancora X_X