Re: JLabel property - setBounds
GG Sriram wrote:
Hi
I am new to Swing and I am trying to break a string of labels that
I have used the setBounds property (I am also failrly new to this) for
setting the labels above the JTextFields... Is it possible to set the
labels above the required positionof the textfield and upon adding
more fields assign a label correctly in the position above a
textfield. Sometimes I see that the labels are misaligned and not in
their proper place when I tr
something like this
Label 1 Label2
Label3 ....adding more textfields and labels
should be set automatically in their
correct position
JTextField1 JTextField2 JTextField
I hope this is clear. I am thinking about how to make this work. Any
sample ideas might help
Sriram
Here's a more dynamic example
--------------------------------- 8< -----------------------------------
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
/**
* @author RedGrittyBrick
*/
public class GrowGrid {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new GrowGrid().createAndShowGUI();
}
});
}
private JFrame frame;
private JPanel panel = new JPanel(new GridBagLayout());
private GridBagConstraints constraints = new GridBagConstraints();
private List<JTextField> fields = new ArrayList<JTextField>();
private JButton button = new JButton("More!");
private void createAndShowGUI() {
String[] labels = { "Alpha", "Bravo", "Charlie", "Delta" };
for (String label : labels)
addColumn(label);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String labelText = JOptionPane.showInputDialog
(frame, "Column Title");
addColumn(labelText);
frame.pack(); // resize frame to accommodate more
}
});
constraints.gridx = 0;
constraints.gridy = 2;
panel.add(button, constraints);
frame = new JFrame("GrowGrid");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(panel));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private void addColumn(String labelText) {
constraints.gridx = fields.size();
constraints.gridy = 0;
panel.add(new JLabel(labelText), constraints);
JTextField field = new JTextField(6);
constraints.gridy = 1;
panel.add(field, constraints);
fields.add(field); // so we can later retrieve content
panel.revalidate(); // redo layout for extra column
}
}
--------------------------------- 8< -----------------------------------
--
RGB