How to align buttons using a Grid Layout? - java

Is it possible to use the Grid Layout for just your text area within the program and have your buttons outside of the grid layout for them to align how you want them ??
I'm struggling to align my buttons and I was wondering if this sort of problem is possible to solve using the grid layout or would I have to change my layout all together to see the results I'm looking for.

I can suggest you to use extra Composites with own layouts (e.g. one composite for text area with fill layout and other one for buttons with grid layout).
You can read this good article about SWT layouts.

Related

What layout should I use In this case?

I am trying to make something like the above, a frame that consists of many JButton components (gray rectangles). These buttons are of the exact shape but their positioning looks like the picture. I am new to AWT, Swing and such and don't know what layout should I use, I know a bit of GridLayout and BorderLayout which are obviously not suitable in this case.
Any ideas?
I think its better to use GridBagLayout. GridBagLayout is a sophisticated, flexible layout manager. It aligns components by placing them within a grid of cells, allowing components to span more than one cell. The rows in the grid can have different heights, and grid columns can have different widths. For further details, see How to Use GridBagLayout. For more details - https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html#gridbag
I strongly recommend you to use Grid Bag Layout, with this layout you can make good looking GUI or strange GUI in most cases. In your problem Check insets in Grid Bag layout, this layout is kind of tricky but if you will learn it, you will see that it is simple.

Java GUI Swing programming

I am beginner . Can I have multiple layouts in a single JFrame?
I want to make a tic-tac-toe project in java and add a GUI to it, so apart from a 3x3 grid, I want a JLabel and a Jbutton. So how can I build a grid as well as add menus and radio buttons?
Which layout should I use?
You must deal with containers and layouts. In containers you can add as many children as you want and Layouts are associated to Containers to provide a way to graphically arrange the children.
Containers provide logical aggregation. Layouts provide graphical appearance for an aggregation.
You probably need to have a container (main) in which there could be a toolbar containing labels and buttons and another container (secondary) with a grid inside. In such a case, there will be three containers : 2 panels and a toolbar. The toolbar has its own layout, but you have to specify layouts for the panels. In the main one a border layout seems to be appropriate (on the north the toolbar, in the center the panel/grid). In the secondary panel a grid layout should do the trick with buttons inside.
I would suggest to use TableLayout as LayoutManager: It allows you with very easy configuration to specify where the various components should be placed inside your container.
Be aware of the fact, that you do not need to solve your Layout with a single layout for your root container: You can always add a JPanel to your Container that has it's own Layout and its own child components.

Put 2 FlowLayouts one under another with a margin

I'm trying to dynamically create 2 FlowLayout instances (one of them has about 50 dynamically created buttons, other has about 10) so that there is a slight gap between them. I'm stuck with this, I tried to use BoxLayout and put flow layouts in it, and then create gap with Box class and its methods, but it didn't work. I tried with BorderLayout, and GridBagLayout, but that didn't work either.
You can see what I'm trying to do on the image below. I would appreciate if anyone has an idea how to do this. The actual question is: How can I create a gap between the first 50 buttons and other 10 buttons, where both groups of buttons have to be set in flow layout.
This effect can be achieved by adding an EmptyBorder to each of the containers with FlowLayout.
Many layouts allow us to set a gap between components, depending on which layout the 2 containers with flow layout are being added to, that might be a possibility here.

JavaFX layout equivalent to GridLayout

I'm used to working with Swing to create GUIs but for a recent project I've chosen to switch to JavaFX. I'm having some trouble with recreating a certain layout I used to make using a GridLayout.
I desire the following behavior:
2 columns that scale proportionally with the size of their parent that center their contents.
Using Swing, I would make JPanel with a GridLayout (1 row, 2 columns) and add 2 JPanels with a BorderLayout, adding the actual content to those panels with the centered constraint.
Then I could add the first panel to any container that has a layout that stretches with the frame and all would be well.
I seem to be unable to recreate this behavior in JavaFX in a simple way. I can think of ways to do it using bindings and combining several panes but I was hoping there is a layout that does this automatically. I've tried using TilePane, HBox, GridPane, AnchorPane, SplitPane and even BorderPane but none of them seem to do what I want them to.
Is there a recommended way to accomplish this? I would much prefer not to embed Swing into the application. Basically what I want is to be able to split the content into two columns that automatically stretch with the Stage/Scene (JFrame).
GridPane? Some references here
http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm#CHDGHCDG
http://docs.oracle.com/javafx/2/api/javafx/scene/layout/GridPane.html

Grid Layout view Java Swing component position

I have problem using Grid Layout in Java Swing. I create Panel and add GridLayout with 4 columns and 2 rows.
I try to add JButton inside it, but the JButton stretch the width.
Look this image :
I want create JButton position like this, because I want to make image gallery using Java Swing.
Look this image :
Any idea? Thanks before :)
Use GridBagLayout and specify GridBagConstraints. It will help you to render components as you want
Kindly refer GridBagLayout
You can try the layout http://java-sl.com/tip_columns_flow_layout.html
It's kind of Win Explorer layout when components flow to fill columns to available width.

Categories

Resources