问题
I'm very new to Java Swing and Java overall (my class just got finished on Scanner
and basics). I was taught only Swing basics which is "What is a JFrame..etc" and I'm stuck on how to layout or position things. On the image is the layout I desired and could anyone help and teach me how to code it? JFrame
with, 5 JPanel
components?(4 columns and the order form below)
Additionally, when clicking the "CONFIRM" button, I would want a new window to popup. How would I be able to link multiple windows?
回答1:
A common strategy to solve complex computing tasks, is to break them into small, well defined manageable tasks. Divide and conquer.
This also applies to gui: break the design into small, easy to layout containers. For example:
You can see four fairly simple and distinct containers, named headerPane
, listPane
, inputPane
and buttonsPane
.
The mainPane
just warps (contains) those four.
The inputPane
area is divided into containers, to keep the layout simple.
The idea is to keep each container layout simple, easy to follow and change.headerPane
can be as simple as:
JPanel headerPane = new JPanel(); //uses flow layout by default
JLabel header = new JLabel("LUNA BOOKSTORE ORDER FORM", JLabel.CENTER);
headerPane.add(header);
buttonsPane
can be as simple as:
JPanel buttonsPane = new JPanel(); //uses flow layout by default
buttonsPane.add(new JButton("CONFIRM"));
buttonsPane.add(new JButton("RESET"));
buttonsPane.add(new JButton("EXIT"));
You can see more examples of applying this strategy here and here.
来源:https://stackoverflow.com/questions/55480767/how-to-layout-jframe-jpanel-etc