2014-07-22 71 views
0

我想长期做下去按钮像Windows计算器的 '=' & '0' 按钮:Windows计算器按钮

The windows calculator

请任何人帮助我。

另外我需要修改这个相同的代码,是否有办法从GRIDLAYOUT做到这一点?

import java.awt.*; 

class Cal{ 
    Cal(){ 
     Frame f=new Frame(); 
     f.setVisible(true); 
     f.setSize(350,500); 
     f.setTitle("Nano Cal"); 

     Panel p1=new Panel(); 
     p1.setBackground(Color.lightGray); 

     Panel p2=new Panel(); 
     p2.setBackground(Color.gray); 

     BorderLayout br=new BorderLayout(); 
     f.add(p1,br.NORTH); 
     f.add(p2,br.CENTER); 

     TextField t1=new TextField(57); 
     p1.add(t1); 

     Button b1=new Button("MC"); 
     Button b2=new Button("MR"); 
     Button b3=new Button("MS"); 
     Button b4=new Button("M+"); 
     Button b5=new Button("M-"); 
     Button b6=new Button("<-"); 
     Button b7=new Button("CE"); 
     Button b8=new Button("C"); 
     Button b9=new Button("±"); 
     Button b10=new Button("√"); 
     etc. 

     p2.add(b1); 
     p2.add(b2); 
     p2.add(b3); 
     p2.add(b4); 
     p2.add(b5); 
     p2.add(b6); 
     p2.add(b7); 
     p2.add(b8); 
     p2.add(b9); 
     p2.add(b10); 

     GridLayout gr=new GridLayout(6,5,5,5); 
     p2.setLayout(gr); 

     MenuBar mb=new MenuBar(); 
     f.setMenuBar(mb); 
     Menu m1=new Menu("View"); 
     Menu m2=new Menu("Edit"); 
     Menu m3=new Menu("Help"); 
     mb.add(m1); 
     mb.add(m2); 
     mb.add(m3); 

     MenuItem mview=new MenuItem("Copy"); 
     MenuItem mview2=new MenuItem("Paste"); 
     m1.add(mview); 
     m1.add(mview2); 



    } 
} 

class testCal{ 
    public static void main(String sr[]){ 

     Cal c = new Cal(); 
    } 
} 
+0

您可以设计自己的按钮。您可以使用setIcon()在按钮上使用图像,这将帮助您设计具有丰富图形外观和感觉的计算器。请参阅http://stackoverflow.com/questions/21270656/如何设置java中的按钮背景图 – nobalG

+1

了解如何使用[GridBagLayout](http://docs.oracle.com/javase/tutorial/uiswing/layout/) gridbag.html)。你为什么使用AWT而不是[Swing](http://docs.oracle.com/javase/tutorial/uiswing/)? –

+0

也,窗口按钮的字体大小看起来大约两倍。 –

回答

1

GridLayout的整个点是让东西大小相等。这听起来像你想要使用另一个布局管理器,例如GridBagLayout或MigLayout(未内置到Java中,请参阅http://www.miglayout.com)。

+0

我可以调整这个按钮吗? – user3864019

+0

是的,这些布局管理器中的任何一个都会让您调整按钮(或任何其他组件)的大小。就我个人而言,我发现MigLayout是两个更容易使用。请参阅http://www.miglayout.com/QuickStart.pdf上的MigLayout快速入门PDF或Swing演示(显示它可以执行的操作以及使用何种源代码执行此操作),地址为http://www.migcalendar的.com/miglayout/swingdemoapp.jnlp –