Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/01/2007, 03:51
evaht
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: Problema con GridBagConstraints

Hola!

Ya he probado todo lo que me has sugerido pero sigue quedando todo igual, la etiqueta y el botón pegado a su derecha

Gracias por el tutorial, fue el que utilicé ayer para enterarme 1 poco de cómo funciona un GridBagLayout y me fue muy útil :)

No se me ocurre qué más probar, te pego el código completo del método initComponents por si el fallo está en otro sitio.

Ah, y mil gracias por la ayuda!

public class ChatFrame extends JPanel {

...

public void initComponents() {

this.setSize(100, 100);
Point point = imGUI.getLocation();
this.setLocation(point.x, point.y);

firstPanel = new JPanel();
firstPanel.setBorder(BorderFactory.createEmptyBord er(0, 0, 0, 0));
firstPanel.setOpaque(false);
firstPanel.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();


remoteUserLabel = new JLabel("Sesión de chat con " + contact);
remoteUserLabel.setHorizontalAlignment(AbstractBut ton.LEFT);
remoteUserLabel.setForeground(Color.black);
remoteUserLabel.setFont(new Font("Dialog", 1, 12));
remoteUserLabel.setOpaque(true);

ImageIcon icocerrar = new ImageIcon("//Web/wwwroot/Clinic/img/close.gif");
closeButton = new JButton(icocerrar);
closeButton.setPreferredSize(new Dimension(20,20));

closeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
}
);

constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weightx = 1.0;
constraints.weighty = 1.0;
constraints.fill = GridBagConstraints.NONE;
constraints.anchor=GridBagConstraints.CENTER;
firstPanel.add(remoteUserLabel,constraints);

constraints.gridx = 1;
constraints.gridy = 0;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weightx = 0;
constraints.anchor=GridBagConstraints.NORTHEAST;
constraints.fill = GridBagConstraints.NONE;
firstPanel.add(closeButton,constraints);

chatTextArea = new JTextArea(11, 40);
chatTextArea.setToolTipText("Mensajes recibidos");
chatTextArea.setEditable(false);
chatTextArea.setBackground(Color.white);
chatTextArea.setLineWrap(true);
chatTextArea.setWrapStyleWord(true);

JScrollPane incomingScroller = new JScrollPane(chatTextArea);
incomingScroller.setVerticalScrollBarPolicy(JScrol lPane.
VERTICAL_SCROLLBAR_ALWAYS);
incomingScroller.setHorizontalScrollBarPolicy(JScr ollPane.
HORIZONTAL_SCROLLBAR_ALWAYS);
//EVA: Añadido para que el Scroll siempre aparezca abajo del todo
incomingScroller.getVerticalScrollBar().setValue(i ncomingScroller.
getVerticalScrollBar().getMaximum());

infoLabel = new JLabel("");
infoLabel.setHorizontalAlignment(AbstractButton.CE NTER);
infoLabel.setForeground(Color.black);
infoLabel.setFont(new Font("Dialog", 1, 10));
infoLabel.setOpaque(false);

textToSendLabel = new JLabel("Texto a enviar:");
textToSendLabel.setHorizontalAlignment(AbstractBut ton.CENTER);
textToSendLabel.setForeground(Color.black);
textToSendLabel.setFont(new Font("Dialog", 1, 11));
textToSendLabel.setOpaque(true);

messageTextArea = new JTextArea(3, 32);
messageTextArea.setEditable(true);
messageTextArea.setFont(new Font("Helvetica", Font.PLAIN, 13));
messageTextArea.setSelectedTextColor(Color.blue);
messageTextArea.setSelectionColor(Color.lightGray) ;
messageTextArea.setLineWrap(true);
messageTextArea.setWrapStyleWord(true);


// create scroll bars for text areas
JScrollPane outgoingScroller = new JScrollPane(messageTextArea);
outgoingScroller.setVerticalScrollBarPolicy(JScrol lPane.
VERTICAL_SCROLLBAR_ALWAYS);
outgoingScroller.setHorizontalScrollBarPolicy(JScr ollPane.
HORIZONTAL_SCROLLBAR_AS_NEEDED);

messageTextArea.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
messageTextAreaKeyPressed(evt);
}
});


secondPanel = new JPanel();
secondPanel.setOpaque(false);
secondPanel.setBorder(BorderFactory.createEmptyBor der(2, 2, 2, 2));
secondPanel.setLayout(new GridLayout(2, 1, 0, 0));

sendButton = new JButton(" ENVIAR ");
sendButton.setToolTipText("Enviar el mensaje");
sendButton.setFocusPainted(false);
sendButton.setFont(new Font("Dialog", 1, 13));

sendButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
chatSession.sendIMActionPerformed(evt);
}
}
);


JPanel subPanel2 = new JPanel();
subPanel2.setOpaque(false);
subPanel2.setLayout(new GridLayout(2, 1, 0, 0));

JPanel subPanel3 = new JPanel();
subPanel3.setOpaque(false);
subPanel3.setLayout(new BorderLayout());
subPanel3.add("Center", outgoingScroller);
subPanel3.add("East", sendButton);
secondPanel.add(subPanel3);

this.add("North", firstPanel);
this.add("Center", incomingScroller);
this.add("South", secondPanel);

}