效果展示:
布局思路:
JFrame设置网格布局,一行两列,左边结果区,右边一个区域《需要一个panel_R》(输入区+按钮区)
然后panel_R设置为边框布局,北边输入区,中间按钮区(需要一个panel_B设置为网格布局,3行3列)
代码:
package com.GUI;
import javax.swing.*;
import java.awt.*;
import java.time.temporal.ValueRange;
public class Calculator_layout extends JFrame {
public Calculator_layout() {
this.setSize(400,300);
this.setTitle("计算器布局");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(1,2));
init();
this.setVisible(true);
}
private void init() {
//控件准备
JTextArea jTextArea = new JTextArea();//左边区域
jTextArea.setBackground(Color.pink);
JTextField jTextField = new JTextField();//输入区
jTextField.setBackground(new Color(244, 244, 244));
JPanel panel_R = new JPanel(new BorderLayout());
Panel panel_B = new Panel(new GridLayout(3, 3));
//JFrame布局添加控件
this.add(jTextArea);
this.add(panel_R);
//panel_添加控件
panel_R.add(jTextField,BorderLayout.NORTH);
panel_R.add(panel_B);
//panel_B中循环添加9个按钮
for (int i = 1; i <=9 ; i++) {
panel_B.add(new Button(i+""));
}
}
public static void main(String[] args) {
new Calculator_layout();
}
}