itro
itro

Reputation: 7228

how to use GridBagLayout and box in java?

I'm using GridBagLayout for a panel. i want to add componet as the picture here below.but not able to put the label Medication perscription under the label Intern. Does any one know how?

GridBagLayout gridbaglayout = new GridBagLayout();
        TGridBagConstraints constraints = new TGridBagConstraints();
        northPanel = new WebPanel(gridbaglayout);
        northPanel.setBorder(new EmptyBorder(5,5,5,5));


// *** PackComboBox row
        constraints.setGxGyGwGhWxWyFillAnchor(0, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
        gridbaglayout.setConstraints(PackComboBox, constraints);
        northPanel.add(FerPackComboBox);

        constraints.setGxGyGwGhWxWyFillAnchor(1, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
        gridbaglayout.setConstraints(approveButton, constraints);
        northPanel.add(approveButton);

        constraints.setGxGyGwGhWxWyFillAnchor(2, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
        WebLabel internLabel = PrescriptionSummaryUtil.createCustomLabel("Intern",new Font("SansSerif",Font.BOLD,20),Color.decode("#ABB202").darker() );
        gridbaglayout.setConstraints(internLabel, constraints);
        northPanel.add(internLabel);

        constraints.setGxGyGwGhWxWyFillAnchor(5, 0, 1, 1, 0.0, 0.0, TGridBagConstraints.HORIZONTAL, TGridBagConstraints.NORTHWEST);
        gridbaglayout.setConstraints(patientInfoBox, constraints);
        northPanel.add(patientInfoBox);

        // *** Medication PerscriptionLabel row
        constraints.setGxGyGwGhWxWyFillAnchor(1, 1, 2, 0, 0.0, 0.0, TGridBagConstraints.NORTHEAST, TGridBagConstraints.NORTHEAST);
        WebLabel medicationPerscriptionLabel = PrescriptionSummaryUtil.createCustomLabel("Medication perscription",new Font("SansSerif",Font.BOLD,20),Color.decode("#ABB202").darker() );
        gridbaglayout.setConstraints(medicationPerscriptionLabel, constraints);
        northPanel.add(medicationPerscriptionLabel);

enter image description here

Upvotes: 0

Views: 1066

Answers (1)

MadProgrammer
MadProgrammer

Reputation: 347284

Producing code to meet your requirements isn't going to be easy, as I'm not farmiluar with the API you're using to generate your constraints...

However, the following code will produce...

enter image description here

public class BadLayout {

    public static void main(String[] args) {
        new BadLayout();
    }

    public BadLayout() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException ex) {
                } catch (InstantiationException ex) {
                } catch (IllegalAccessException ex) {
                } catch (UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Test");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new LayoutPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    protected class LayoutPane extends JPanel {

        public LayoutPane() {
            setLayout(new GridBagLayout());

            JLabel intern = new JLabel("Intern");
            JLabel med = new JLabel("Medication perscription");

            JPanel box = new JPanel(new GridBagLayout());
            box.setBorder(new LineBorder(Color.BLACK));
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.weightx = 1;
            gbc.weighty = 1;
            gbc.fill = GridBagConstraints.BOTH;
            gbc.insets = new Insets(40, 40, 40, 40);
            box.add(new JLabel("I'm a box"), gbc);

            gbc = new GridBagConstraints();
            gbc.weightx = 1;
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.anchor = GridBagConstraints.NORTH;
            add(intern, gbc);

            gbc.gridy++;
            gbc.weighty = 1;
            add(med, gbc);

            gbc.weighty = 0;
            gbc.weightx = 0;
            gbc.gridx = 1;
            gbc.gridy = 0;
            add(box, gbc);                
        }                        
    }        
}

Upvotes: 1

Related Questions