user3456343
user3456343

Reputation: 252

How to set flow layout?

hi i am trying to make java desktop application where i am trying to make jbutton bottom left i did following code i dont know where i am wrong my code is note working

here is my code

import java.awt.*;
import java.awt.event.*;
import javax.imageio.ImageIO;
import javax.swing.*;

new complete code 

    public class ApplicationCloseExample
    {   
        private JButton[] buttons;
        private void displayGUI()
        {
            final JFrame frame = new JFrame("Application Close Example");





            JPanel bottomPanel = new JPanel();
            bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
              for (int i = 5; i < 8; i++) {
                 buttons[i] = new JButton(Integer.toString(i));
                    bottomPanel.add(buttons[i]);
              }

           // JButton button = new JButton("Comment");
           // bottomPanel.add(button);

        //    frame.getContentPane().add(contentPane, BorderLayout.CENTER);
            frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);

            frame.pack();
            frame.setVisible(true);
        }

        public static void main(String... args)
        {
            SwingUtilities.invokeLater(new Runnable()
            {
                public void run()
                {
                    new ApplicationCloseExample().displayGUI();
                }
            });
        }
    }

How can i achieve this

Upvotes: 0

Views: 1471

Answers (2)

Jack
Jack

Reputation: 508

I'm going to assume the null pointer exception is something to do with your buttons array. Check that you have initialised it properly.

private JButton[] buttons = new JButton[8];

I copied your code into a test project and ran it after some modifications:

public static void main(String[] args) {

    final JFrame frame = new JFrame("Application Close Example");

    JPanel bottomPanel = new JPanel();
    bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
      for (int i = 5; i < 8; i++) {
         buttons[i] = new JButton(Integer.toString(i));
            bottomPanel.add(buttons[i]);
      }

    frame.getContentPane().add(bottomPanel, BorderLayout.SOUTH);

    frame.pack();
    frame.setVisible(true);
}

This produced a frame with three buttons aligned to the bottom left of the window.

Upvotes: 2

York Xtrem
York Xtrem

Reputation: 58

There is an elegant solution that I'll give you but maybe it serves. Use WindowsBuilder and adds several buttons and then you look like is placing code. So make yourself an idea of the pattern that follows a setLayout with Flow.

Upvotes: 0

Related Questions