我不知道如何描述这个问题,所以我没有搜索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/

10-10 08:02