Skip to content

设置窗口标题+窗口整体放大时内部所有元素也跟随放大而不是停留在原有的填充方式 #2

@shaozheng0503

Description

@shaozheng0503
public CalculatorHMI() {
    setTitle("xxx大学Java计算器"); // 设置窗口标题
    df.setMaximumFractionDigits(32); // 数值显示到小数点后32位
    df.setRoundingMode(RoundingMode.HALF_EVEN); // 银行家舍入法
    df.setGroupingSize(3); // 设置数字分组大小,对结果3位一体划分开

    T_Eq.setHorizontalAlignment(JTextField.RIGHT); // 输入算式文本显示右对齐
    T_Res.setHorizontalAlignment(JTextField.RIGHT); // 结果文本显示右对齐

    this.setSize(277, 365); // 界面大小
    this.setLocationRelativeTo(null); // 窗口居中显示
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 点击关闭按钮时退出程序
    this.setResizable(true); // 允许调整窗口大小
    this.setLayout(gridBagLayout); // 窗体对象设置为GridBagLayout布局
    gridBagConstraints.fill = GridBagConstraints.BOTH; // 组件填充方式

    // 设置权重,使组件随窗口大小变化而调整
    gridBagConstraints.weightx = 1.0;
    gridBagConstraints.weighty = 1.0;
  • setTitle("xxx大学Java计算器"): 设置了窗口的标题,这里使用的是"xxx大学Java计算器",你可以根据实际情况修改这个标题。

  • df.setMaximumFractionDigits(32): 这里df应该是一个DecimalFormat对象,用于格式化数字。此方法设置了数字可以显示的最大小数位数为32位。

  • df.setRoundingMode(RoundingMode.HALF_EVEN): 设置了当需要舍入数字时使用的舍入模式为“银行家舍入法”,这是一种四舍六入五成双的规则,用于减少累积误差。

  • df.setGroupingSize(3): 指定了数字每三位用分隔符(通常是逗号)来分组,以提高可读性。

  • T_Eq.setHorizontalAlignment(JTextField.RIGHT)T_Res.setHorizontalAlignment(JTextField.RIGHT): 将文本字段中的文本设置为右对齐。这对于计算器来说是很常见的,因为这样可以让用户更容易地阅读数字。

  • this.setSize(277, 365): 设置了主窗口的初始大小。

  • this.setLocationRelativeTo(null): 让窗口在屏幕中央出现。

  • this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE): 设置当用户点击窗口的关闭按钮时,程序会完全退出。

  • this.setResizable(true): 允许用户改变窗口的大小。

  • this.setLayout(gridBagLayout): 设置了窗口的布局管理器为GridBagLayout,这是一个非常灵活的布局管理器,可以精确控制组件的位置和大小。

  • gridBagConstraints.fill = GridBagConstraints.BOTH: 当组件所在的区域比组件本身大时,此属性决定了组件如何填充额外的空间。BOTH意味着组件会在水平和垂直方向上扩展以填满可用空间。

  • gridBagConstraints.weightx = 1.0gridBagConstraints.weighty = 1.0: 这些属性定义了组件在容器尺寸变化时,如何分配额外的空间。这里的值为1.0表示组件将平均分配任何额外的空间。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions