代码:

package calculator;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class cal extends JFrame{
    private JTextField tf =new JTextField("0");

    public void addButton(String name,GridBagLayout g ,GridBagConstraints c){
        JButton btn = new JButton(name);
        g.setConstraints(btn, c);
        add(btn);
    }

    public void lauch(){
        //文本是不可以编辑的
        tf.setEditable(false);
        GridBagLayout gb = new GridBagLayout();
        setLayout(gb);
        GridBagConstraints c  = new GridBagConstraints();
        //文本是放在最上面的,占用那一行所有的空间
        c.weightx=0.3;
        c.weighty=0.3;
        c.gridy  = 0 ;
    //    c.anchor = GridBagConstraints.EAST;
        c.gridwidth = 4 ;
        c.fill = GridBagConstraints.BOTH;
        add(tf,c);

        //需要另起一行添加按钮
        c.gridy =1;

        c.gridwidth =1 ;
        addButton("MC", gb, c);
        addButton("M+", gb, c);
        addButton("M-", gb, c);
        addButton("MR", gb, c);
        c.gridy = 2;

        addButton("c", gb, c);
        addButton("+", gb, c);
        addButton("/", gb, c);
        addButton("*", gb, c);
        c.gridy = 3;

        addButton("7", gb, c);
        addButton("8", gb, c);
        addButton("9", gb, c);
        addButton("-", gb, c);
        c.gridy = 4;

        addButton("4", gb, c);
        addButton("5", gb, c);
        addButton("6", gb, c);
        addButton("+", gb, c);

        c.gridy = 5 ;
        addButton("1", gb, c);
        addButton("2", gb, c);
        addButton("3", gb, c);
        c.gridx = GridBagConstraints.RELATIVE;
        c.gridheight= GridBagConstraints.REMAINDER ;
        c.fill = GridBagConstraints.BOTH;
        //c.anchor  = GridBagConstraints.SOUTH;
        addButton("=", gb, c);
        c.gridy = 6 ;
        c.gridx= 0 ;
        c.gridheight = 1 ;
        c.gridwidth  =2 ;
        addButton("0",gb,c);
        c.gridx  = GridBagConstraints.RELATIVE;
        c.gridwidth  =1 ;
        addButton(".",gb,c);
    setBounds(100,100,300,500);
        //this.pack();
        setVisible(true);
    }

    public static void main(String[] args) {
            cal c = new cal();
            c.lauch();

    }

}

java仿win7计算器布局的更多相关文章

  1. Java课程设计-计算器 郑子杰(201521123021)

    1.团队课程设计博客链接 http://www.cnblogs.com/I-love-java/p/7058752.html 2.个人负责模块或任务说明 ①图形界面的初始化 ②图形界面的排版设计 ③主 ...

  2. WPF仿Win7便笺

    最近用WPF写了个仿WIN7下面的便笺小工具,还算是比较华丽的,相似度99%以上吧,在集成了便笺原有的功能以外,当然也做了略微的修改,比如加了关于作者版本信息和修改了原有删除便笺的系统弹出框.软件开机 ...

  3. (转)Java 的swing.GroupLayout布局管理器的使用方法和实例

    摘自http://www.cnblogs.com/lionden/archive/2012/12/11/grouplayout.html (转)Java 的swing.GroupLayout布局管理器 ...

  4. Java对象的内存布局

    对象的内存布局 平时用java编写程序,你了解java对象的内存布局么? 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域: 对象头 实例数据 对齐填充 对象头 对象头包括两部分信息: ...

  5. 【java】浅析java组件中的布局管理器

    这篇博文笔者介绍一下java组件中,常用的布局管理器.java组件中的布局方式有好几十种,所有的这些布局管理器都实现了java.awt.LayoutManager接口.接下来笔者介绍一下常用的5种布局 ...

  6. Android计算器布局

    Android(安桌)计算器布局实现         ——解决整个屏幕方案 引言:     学完了android布局的几种方式,做了一个android计算器. 我在网上搜索了这方面的资料,发现了布局都 ...

  7. Java对象的内存布局以及对象的访问定位

    一 Java对象的内存布局 在HotSpot虚拟机中,对象在内存中的布局分为3个区域 对象头(Header) Mark Word(在32bit和64bit虚拟机上长度分别为32bit和64bit)存储 ...

  8. 3 Java对象的内存布局以及对象的访问定位

    先来看看Java对象在内存中的布局   一 Java对象的内存布局 在HotSpot虚拟机中,对象在内存中的布局分为3个区域 对象头(Header) Mark Word(在32bit和64bit虚拟机 ...

  9. Java单个对象内存布局.md

    我们在如何获取一个Java对象所占内存大小的文章中写了一个获取Java对象所占内存大小的工具类(ObjectSizeFetcher),那么接下来,我们使用这个工具类来看一下Java中各种类型的对象所占 ...

随机推荐

  1. python 异步请求

    这是循环请求10次页面.总时间大概是10秒左右,如果是普通的循环请求10次页面而不添加异步的话,时间大概在30秒以上,当然这个数据可能有误,因为有网速的问题存在,但大体的效果应该是不变的. impor ...

  2. SQL中rownumber的用法

    1)一次排名: 语法:row_number() over(order by 字段 desc/asc):按照某个字段排名 1.1.查询语句: 1.2.查询结果:查询结果按照薪水进行排名 2)先分组后排名 ...

  3. 028.核心组件-API Server

    一 Kubernetes API Server原理 1.1 API Server功能 Kubernetes API Server的核心功能是提供Kubernetes各类资源对象(如Pod.RC.Ser ...

  4. Js中的window.parent ,window.top,window.self 了解

    在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...

  5. 【简说Python WEB】flask-mail电子邮件

    目录 flask-mail flask shell发送邮件 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6 ...

  6. VS2019 C++动态链接库的创建使用(4) - C语言客户端

    前面提到过C++具有函数重载功能,所以引出的函数名会有变化,即名称改编,如果是C语言编写的客户端则无法正确识别. 处理方法: ①只需在宏定义中间增加 extern "C",但这种使 ...

  7. 大数据软件安装之Hive(查询)

    一.安装及配置 官方文档: https://cwiki.apache.org/confluence/display/Hive/GettingStarted 安装Hive2.3 1)上传apache-h ...

  8. 基于 HTML5 WebGL 与 GIS 的智慧机场大数据可视化分析【转载】

    前言:大数据,人工智能,工业物联网,5G 已经或者正在潜移默化地改变着我们的生活.在信息技术快速发展的时代,谁能抓住数据的核心,利用有效的方法对数据做数据挖掘和数据分析,从数据中发现趋势,谁就能做到精 ...

  9. CMDB_Agent版本

    目录 CMDB_Agent版本 CMDB概念 CMDB_Agent介绍 agent方案 ssh类方案 相比较 架构目录 bin-start.py 启动文件 conf-config.py 自定义配置文件 ...

  10. CMDB资产采集方式

    一:Agent方式 原理:在每台服务器装上agent客户端程序,定时向数据库发送指定的资产信息. 优点:速度快. 缺点:服务器上需要多装一个软件 import subprocess import re ...