首页 > 代码库 > Spring 做一个计算器界面(解决控件覆盖问题)
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 //.......................
Spring 做一个计算器界面(解决控件覆盖问题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。