如何在 Java 中组合 FlowLayout 和 BoxLayout?\

java 8object oriented programmingprogramming更新于 2025/4/26 21:07:17

为了组合这两个布局,我们在这里创建了两个面板 −

Frame f = new JFrame("Combining Layouts");
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

现在,相应地设置布局 −

panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
panel2.setLayout(new FlowLayout());

然后在两个面板上添加组件后,将它们添加到框架中 −

f.add(panel1, BorderLayout.WEST);
f.add(panel2, BorderLayout.CENTER);

示例

package my;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class SwingDemo {
   public static void main(String[] args) {
      JFrame f = new JFrame("Combining Layouts");
      JPanel panel1 = new JPanel();
      panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
      JPanel panel2 = new JPanel();
      panel2.setLayout(new FlowLayout());
      panel2.setBackground(Color.red);
      panel1.add(new JTextArea("TextArea1"));
      panel1.add(new JTextArea("TextArea2"));
      panel1.add(new JTextArea("TextArea3"));
      panel1.add(new JTextArea("TextArea4"));
      panel1.add(new JTextArea("TextArea5"));
      panel1.add(new JTextArea("TextArea6"));
      panel1.add(new JTextArea("TextArea7"));
      panel2.add(new JLabel("JLabel1"));
      panel2.add(new JLabel("JLabel2"));
      panel2.add(new JLabel("JLabel3"));
      panel2.add(new JLabel("JLabel4"));
      panel2.add(new JLabel("JLabel5"));
      panel2.add(new JLabel("JLabel6"));
      panel2.add(new JLabel("JLabel7"));
      f.add(panel1, BorderLayout.WEST);
      f.add(panel2, BorderLayout.CENTER);
      f.setVisible(true);
      f.setSize(550, 400);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

输出


相关文章