我不知道如何描述这个问题,所以我没有搜索SO或Google。任何人都可以为这个问题命名,请告诉我。
我知道添加一个额外的JPanel是可行的,我想知道我们是否可以调整布局。
最佳答案
使用JPanels嵌套两个BorderLayout。外部的一个有两个侧面的JPanels,中间的“列” JPanel包含三个JPanels。然后,此中心列JPanel使用BorderLayout并保存顶部,底部和中央JPanels。
例如。,
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
public class MyLayouts {
private static void createAndShowGui() {
JPanel centerColumnPanel = new JPanel(new BorderLayout());
centerColumnPanel.setBorder(BorderFactory.createTitledBorder("Center Column Panel"));
centerColumnPanel.add(makePanel("North", 400, 100), BorderLayout.PAGE_START);
centerColumnPanel.add(makePanel("South", 400, 100), BorderLayout.PAGE_END);
centerColumnPanel.add(makePanel("Center", 400, 200), BorderLayout.CENTER);
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.setBorder(BorderFactory.createTitledBorder("Main Panel"));
mainPanel.add(centerColumnPanel, BorderLayout.CENTER);
mainPanel.add(makePanel("West", 100, 400), BorderLayout.LINE_START);
mainPanel.add(makePanel("East", 100, 400), BorderLayout.LINE_END);
JFrame frame = new JFrame("MyLayouts");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private static JPanel makePanel(String title, int width, int height) {
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder(title));
panel.add(Box.createRigidArea(new Dimension(width, height)));
return panel;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
关于java - 如何调整图像显示的边框布局?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26793809/