Spring 做一个计算器界面(解决控件覆盖问题)

  1 import java.awt.BorderLayout;
  2
  3 import javax.swing.*;
  4 public class ForJava {
  5
  6     public static void main(String[] args) {
  7         JFrame frame=new CCal(400,300);
  8         frame.setVisible(true);
  9     }
 10 }
 11 class CCal extends JFrame{
 12     public CCal(int w,int h){
 13         setLocation(200, 160);
 14         setSize(w, h);
 15         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 16
 17
 18         JPanel displayPanel=new JPanel();
 19         JButton cbtn=new JButton();
 20         cbtn.setText("c");
 21         displayPanel.add(cbtn);
 22
 23         JTextArea display=new JTextArea();
 24         display.setColumns(20);
 25         displayPanel.add(display);
 26         getContentPane().add(displayPanel, BorderLayout.NORTH);
 27
 28         JPanel panelTemp1=new JPanel();
 29         panelTemp1.setLayout(new BorderLayout());
 30         getContentPane().add(panelTemp1);
 31
 32         JPanel cachePanel=new JPanel();
 33         panelTemp1.add(cachePanel, BorderLayout.NORTH);
 34         JButton mbtnMR=new JButton();
 35         mbtnMR.setText("MR");
 36         cachePanel.add(mbtnMR);
 37         JButton mbtnMC=new JButton();
 38         mbtnMC.setText("MC");
 39         cachePanel.add(mbtnMC);
 40         JButton mbtnMS=new JButton();
 41         mbtnMS.setText("MS");
 42         cachePanel.add(mbtnMS);
 43         JButton mbtnMP=new JButton();
 44         mbtnMP.setText("M+");
 45         cachePanel.add(mbtnMP);
 46
 47
 48         JPanel panelTemp2=new JPanel();
 49         panelTemp2.setLayout(new BorderLayout());
 50         panelTemp1.add(panelTemp2);
 51
 52         JPanel panelButton1=new JPanel();
 53         panelTemp2.add(panelButton1, BorderLayout.NORTH);
 54         JButton mbtn1=new JButton();
 55         mbtn1.setText("1");
 56         panelButton1.add(mbtn1);
 57         JButton mbtn2=new JButton();
 58         mbtn2.setText("2");
 59         panelButton1.add(mbtn2);
 60         JButton mbtn3=new JButton();
 61         mbtn3.setText("3");
 62         panelButton1.add(mbtn3);
 63         JButton mbtnP=new JButton();
 64         mbtnP.setText("+");
 65         panelButton1.add(mbtnP);
 66
 67         JPanel panelTemp3=new JPanel();
 68         panelTemp3.setLayout(new BorderLayout());
 69         panelTemp2.add(panelTemp3);
 70
 71         JPanel panelButton2=new JPanel();
 72         panelTemp3.add(panelButton2, BorderLayout.NORTH);
 73         JButton mbtn4=new JButton();
 74         mbtn4.setText("4");
 75         panelButton2.add(mbtn4);
 76         JButton mbtn5=new JButton();
 77         mbtn5.setText("5");
 78         panelButton2.add(mbtn5);
 79         JButton mbtn6=new JButton();
 80         mbtn6.setText("6");
 81         panelButton2.add(mbtn6);
 82         JButton mbtnMi=new JButton();
 83         mbtnMi.setText("-");
 84         panelButton2.add(mbtnMi);
 85
 86         JPanel panelTemp4=new JPanel();
 87         panelTemp4.setLayout(new BorderLayout());
 88         panelTemp3.add(panelTemp4);
 89
 90         JPanel panelButton3=new JPanel();
 91         panelTemp4.add(panelButton3, BorderLayout.NORTH);
 92         JButton mbtn7=new JButton();
 93         mbtn7.setText("7");
 94         panelButton3.add(mbtn7);
 95         JButton mbtn8=new JButton();
 96         mbtn8.setText("8");
 97         panelButton3.add(mbtn8);
 98         JButton mbtn9=new JButton();
 99         mbtn9.setText("9");
100         panelButton3.add(mbtn9);
101         JButton mbtnMu=new JButton();
102         mbtnMu.setText("*");
103         panelButton3.add(mbtnMu);
104
105         JPanel panelTemp5=new JPanel();
106         panelTemp5.setLayout(new BorderLayout());
107         panelTemp4.add(panelTemp5);
108
109         JPanel panelButton4=new JPanel();
110         panelTemp5.add(panelButton4, BorderLayout.NORTH);
111         JButton mbtn0=new JButton();
112         mbtn0.setText("0");
113         panelButton4.add(mbtn0);
114         JButton mbtnPorM=new JButton();
115         mbtnPorM.setText("+/-");
116         panelButton4.add(mbtnPorM);
117         JButton mbtnEq=new JButton();
118         mbtnEq.setText("=");
119         panelButton4.add(mbtnEq);
120         JButton mbtnDiv=new JButton();
121         mbtnDiv.setText("/");
122         panelButton4.add(mbtnDiv);
123     }
124
125
126 }

要使几行按钮排列不被重叠,就需要JPanel的嵌套:

 1 JPanel up1=new JPanel();
 2 /*增加button等*/
 3 getContentPane().add(up1,BorderLayout.north));
 4
 5 JPanel down1 = new JPanel();
 6 down1.setLayout(new BorderLayout());
 7 getContentPane().add(down1,BorderLayout.north));
 8 /*down1不增加button这些控件,只作为下一个Jpanel的底层/*
 9
10 JPanel up2 = new JPanel();
11 down1.add(up2,BorderLayout.NORTH));
12 /*添加控件*/
13
14 JPanel down2 = new Jpanel();
15 down2.setLayout(new BorderLayout());
16 down1.add(down2);
17 //.......................
时间: 2024-10-22 08:09:01

Spring 做一个计算器界面(解决控件覆盖问题)的相关文章

小米3系统计算器自定义开关控件-MySwitchView

1.前言 在android4.0以后,有switch控件,类似于iPhone上面滑块的效果,但是只能用在4.0以后的系统中,之前的平台,就无法使用这种控件.近段时间,看到了小米3手机上自带的计算器app,有这样的效果,上面的一个控件,觉得很漂亮,并且与iPhone上的效果略有不同,于是自己动手编写了一下这个功能,在编写的过程中,参考过网上的一些demo,运行后,在控件滑动的时候,感觉动画不平滑,有卡顿的现象,反复修改,最后还是有一些问题,感觉是在滑动中的状态,没有合理的控制好.无奈只能参考Goo

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 1.    DockPanel的一点点改进: 在浏览网上的一些技术文章发现,的确有些地方还是可以进一步改进,如当双击Tab时,原先是直接把当前Tab所表示的这个窗体,从主窗体的框架上分离现来,成为一个浮动的窗体.这不是我们想要的,有些同学修改源代码,把它改成了双击关

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的今天在这里,我想与大家一起分这一伟大的控件.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 一.引用方法: 1.建立一个WinFo

一个关于ExtJS4具体控件的详细教程

发现一遍介绍ExtJS控件介绍的比较好的系列文章,在此做总结 ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作 ExtJs4 笔记(2) ExtJs对js基本语法扩展支持 ExtJs4 笔记(3) Ext.Ajax 对ajax的支持 ExtJs4 笔记(4) Ext.XTemplate 模板 ExtJs4 笔记(5) Ext.Button 按钮 ExtJs4 笔记(6) Ext.MessageBox 消息对话框 ExtJs4 笔记(7) Ext.tip.ToolTip 提示

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件

Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的功能,读取Excel的数据并导入到Dataset或数据库中.读取Excel表格数据的代码如下: 首先要引入命名空间:using Aspose.Cells; Workbook workbook = new Workbook(); workbook.Open("C:\\test.xlsx");

如何获取上一个页面中checkbox控件选中的值

php开发中,<php开发中.<php开发中.如何获取上一个页面中checkbox控件选中的值呢?并输出出来,以下是代码示例: <? $music=$_POST['music']; //取得所选中的checkbox个数 $coun=count$music; ifis_arrai$music{ echo'您选择的 : '; foreach$musicas$kei=>$var echo'  ['.$var.']'; echo$key; } ?> *****************

整合GUI设计程序界面的控件DbNetGrid

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. 整合GUI设计程序界面的控件DbNetGrid

RelativeLayout中include 控件覆盖重叠的问题

RelativeLayout直接include另一个layout是会把include中的控件与当前layout中的控件覆盖重叠,经过查资料 其中的include标签一定要加上(因为include中不指定这二个属性其他所有属性都无效) android:layout_height="wrap_content" android:layout_width="match_parent" 二个属性并指定id属性android:id="@+id/head" 再

c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。

首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thread = new Thread(ThreadFuntion); thread.IsBackground = true; thread.Start(); } private void Thread