Souci positionnement gridbaglayout
Bonjour,
Je suis en train de développer un logiciel permettant de transférer des fichiers via plusieurs protocoles. Je suis en ce moment sur l'interface. Mon problème c'est que j'arrive pas a bien fixer mes widgets sur ma grille. J'ai un peu de mal a expliqué, donc je vous joint mon src.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| package UI;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.text.NumberFormat;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import tree.TreeSystem;
import tree.TreeSystemMenu;
public class PanelSelection extends JPanel {
private JPanel panel_select;
private JTextField adresse;
private JFormattedTextField port;
private JButton benvoi;
private JComboBox cb;
private String cote;
private NumberFormat portFormat = NumberFormat.getNumberInstance();
public PanelSelection(int cote)
// j'instancie cette classe avec 0 pour le cote gauche et 1 pour le cote droit
{
setLayout(new GridBagLayout());
setBorder(BorderFactory.createTitledBorder("Transfert"));
GridBagConstraints c=new GridBagConstraints();
c.fill=GridBagConstraints.BOTH;
c.insets=new Insets(1,1,0,10);
c.weightx=c.weighty=0;
c.gridwidth=2; c.gridheight=1;
// Ajout du text contenant l'IP
adresse = new JTextField();
//sadresse.setPreferredSize(new Dimension(40,20));
adresse.setHorizontalAlignment(JTextField.RIGHT);
if( cote == 0 )
c.gridx=1;
else
c.gridx=2;
c.gridy=0;
// c.gridwidth = 1; c.gridheight=1;
add(adresse, c);
// Ajout du bouton de parcours
c.gridwidth=1; c.gridheight=1;
if( cote== 0 )
benvoi = new JButton("=>");
else
benvoi = new JButton("<=");
benvoi.setPreferredSize(new Dimension(50,20));
if( cote == 0 )
c.gridx=2;
else
c.gridx=0;
c.gridy=0;
// c.gridwidth=1; c.gridheight=1;
add(benvoi, c);
//Ajout de la combobox
c.gridwidth=1; c.gridheight=1;
cb = new JComboBox();
cb.setPreferredSize(new Dimension(60,20));
cb.addItem("FTP");
cb.addItem("SSH");
if( cote == 0 )
c.gridx=0;
else
c.gridx=1;
c.gridy=0;
//c.gridwidth=1; c.gridheight=1;
add(cb, c);
/*
// Ajout du texte contenant le port
c.gridx=0; c.gridy=1;
// c.gridwidth=1; c.gridheight=1;
if( cote==0)
add(new JLabel("Port Reception"), c);
else
add(new JLabel("Port Envoi"), c);
port = new JFormattedTextField(portFormat);
port.setPreferredSize(new Dimension(40,20));
port.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent e)
{
Object source = e.getSource();
if( source == port && port.getValue()!=null)
{
String s = port.getValue().toString();
if( Integer.parseInt(s)<0 )
port.setValue(1);
}
}
});
port.setHorizontalAlignment(JTextField.RIGHT);
c.gridx=1; c.gridy=1;
//c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight=1;
add(port, c);
*/
JScrollPane scrollPane = new JScrollPane();
//init la tree
TreeSystem treeSystem = new TreeSystem(new File("C:\\"), true);
//ajoute des listener utile
//treeSystem.addTreeSelectionListener(new TreeSystemController.OnSelect(treeSystem));
//treeSystem.addMouseListener(new TreeSystemController.OnValidate(treeSystem));
//ajoute le menu click doit
TreeSystemMenu treeSystemMenu = new TreeSystemMenu(treeSystem);
treeSystem.addMenu(treeSystemMenu);
scrollPane.setViewportView(treeSystem);
c.gridx=0;
c.gridy=3;
c.gridwidth=3; c.gridheight=1;
add(scrollPane, c);
}
/**
* Ajouter une action sur le boutton de parcours
* @param l
*/
public void addActionParcours(ActionListener l)
{
benvoi.addActionListener(l);
}
} |
Mon souci c'est que normalement mes deux panels doivent faire "miroirs". Dans mon code source, mon bouton envoyer du coté droit se met bien à droite mais sur mon panel gauche, il n’apparaît même pas !!
Je ne comprends pas d'où vient mon problème !!
Merci pour votre aide.