代码:

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. throttle工具函数

    // fn是我们需要包装的事件回调, delay是时间间隔的阈值 export function throttle(fn, delay) { // last为上一次触发回调的时间, timer是定时器 ...

  2. element中的树形组件,如何获取父级菜单的id

    一般多选的树形组件,使用getCheckedNodes()方法只能获取到本级的菜单id,只有在子菜单全部选中的情况下才会选中上级.但我们想要不全选中子级的情况下也要获取它的上级,甚至上上级等,怎么办呢 ...

  3. 题解 UVA12186 【工人的请愿书 Another Crisis】

    俺太难了 记录一下我调了一个小时的错误 多测不清空 多测清空只清空了\(vector\) 多测全清空了,但是忘了清空\(vector[0]\) \(priority\)_ \(queue\)把\(gr ...

  4. 视频 embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法

    看图: 视频处html代码: <div id="mod_player" class="mod_player"> <embed id=" ...

  5. .Net Framework 工具Mpgo.exe与Ngen.exe

    首先放出官方MSDN的文档地址 Mpgo.exe 主要用于分析程序集启动时需要哪些东西,然后将信息反馈给NGen.exe 来更好的优化本机映像,使得应用程序启动更快,工作集缩小.准备发布时,用MPGO ...

  6. DOTNET CORE源码分析之ServiceDescriptor

    ServiceDescriptor在.net core中的作用就是DI中注入服务元素的描述.每一个元素核心内容部分包括需要注入的服务元素的类型ServiceType,它对应的接口(如果有的话)Impl ...

  7. java-随机点名2(新手)

    //创建的一个包名. package qige; //导入一个包.import java.util.*; //定义一个类.public class SJdm { //公共静态的主方法. public ...

  8. LocalStorage与SessionStorage

    localStorage与sessionStorage 每日更新前端基础,如果觉得不错,点个star吧

  9. ASP.NET Core 3.x 中间件流程与路由体系

    中间件分类 ASP.NET Core 中间件的配置方法可以分为以上三种,对应的Helper方法分别是:Run(), Use(), Map(). Run(),使用Run调用中间件的时候,会直接返回一个响 ...

  10. session生命周期,与cookie的区别

    sessinon在用户访问第一次访问服务器时创建. Session什么时候失效? 1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效.Tomcat中Sessio ...