Benjamin
Benjamin

Reputation: 541

Is there a LayoutManager in the Java API that would allow me to do like this?


I'm programming this level creator for a game me and a few of my friends are doing but as of right now the GUI is using a null layout, which I don't want to. It works fine for now, but I'm still against it and I know everyone else also encourages you to ALWAYS use a LayoutManager. I'm not really willing to compromise the design as it is right now, so I pretty much want to know if there's a LayoutManager that allows me to create a GUI that looks like this:
enter image description here

IT HAS TO BE IN THE STANDARD JAVA API! :)

Upvotes: 0

Views: 89

Answers (4)

Erick Robertson
Erick Robertson

Reputation: 33082

Use GroupLayout for the overall panel and a custom paint method for the map.

I don't think many people here would recommend GroupLayout because it's more complicated than the other layout managers. I like it because it produces great scalable results, so I invested the time in understanding it. Now, I hardly use anything else - especially for user interaction panels with buttons and text fields.

For the map, though, I would create a custom MapPanel and overwrite paintComponent(). Sure you have to write your own custom scrolling algorithm, but I think that's a small benefit for not having to deal with scroll bars. You could make it so someone could just drag the mouse around and move the map. Use the mouse wheel to zoom, and make the interface very intuituve. If you want to paint scrollbars, you can do that too.

I've built several interfaces using models like this. I've built several maps for games using this model, as well as a financial market charting package. It makes it very easy to add custom functionality to do some great things that would be a nightmare to try to do in a JTable.

Upvotes: 0

Ted Hopp
Ted Hopp

Reputation: 234847

This looks like a good job for a BorderLayout. Put the buttons inside a nested container as the NORTH element. Add the JScrollPane as the CENTER component. The grid itself looks like it is a good candidate for a GridBagLayout or perhaps a GridLayout.

Upvotes: 2

Has QUIT--Anony-Mousse
Has QUIT--Anony-Mousse

Reputation: 77475

Check the excellent documentation available for Java by Sun itself:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

Can you spot the GridLayout and GridBagLayout? If you put it into a scrollable container, that should do the trick.

Upvotes: 0

BenCole
BenCole

Reputation: 2112

Short answer, yes: GridBagLayout. But that'll be a pain to work out and debug.

Long answer: It looks to me like you could do this best with a BorderLayout, a JPanel for the JButtons, and a JTable with custom TableCellRenderers and TableCellEditors.

Upvotes: 2

Related Questions