2010-03-12 224 views
-1

谁能告诉我最好的方式来使用网格布局设置我的计算器的按钮网格布局

+0

你到目前为止有什么想法? – RageZ 2010-03-12 06:31:36

+0

现有的代码是必要的,以帮助你。 – 2010-03-12 09:00:26

+0

您是否使用任何JavaScript工具包? – Philippe 2010-03-15 15:40:20

回答

1

这几乎是过于笼统回答的问题,你甚至不说清楚你在谈论什么编程语言(JavaScript?Java?X.net?)。

让我给你一个使用Java的例子。基本的想法是,你为每个按钮创建一个javax.swing.JButton(假设你正在使用Swing),然后考虑你想要实现的布局(显然是一个网格),然后将按钮添加到父组件。例如,为了模拟天生的GNOME计算器的布局:

import java.awt.*; 
import javax.swing.*; 

/** 
* +----+----+----+----+ 
* |Bksp| CE | Clr| +- | 
* +----+----+----+----+ 
* | 7 | 8 | 9 |/| 
* +----+----+----+----+ 
* | 4 | 5 | 6 | * | 
* +----+----+----+----+ 
* | 1 | 2 | 3 | - | 
* +----+----+----+----+ 
* | 0 | . | = | + | 
* +----+----+----+----+ 
*/ 
public class Calculator extends JPanel { 
    public Calculator() { 
     JButton bksp  = new JButton("Bksp"); 
     JButton ce  = new JButton("CE"); 
     JButton clr  = new JButton("Clr"); 
     JButton plusminus = new JButton("+-"); 
     JButton div  = new JButton("/"); 
     JButton mult  = new JButton("*"); 
     JButton minus  = new JButton("-"); 
     JButton plus  = new JButton("+"); 
     JButton equals = new JButton("="); 
     JButton dot  = new JButton("."); 
     JButton[] digits = new JButton[10]; 
     for (int i = 0; i < digits.length; i++) { 
      digits[i] = new JButton(String.valueOf(i)); 
     } 

     /* do the layout */ 
     setLayout(new GridLayout(5, 4, 5, 5)); 
     add(bksp); 
     add(ce); 
     add(clr); 
     add(plusminus); 
     add(digits[7]); 
     add(digits[8]); 
     add(digits[9]); 
     add(div); 
     add(digits[4]); 
     add(digits[5]); 
     add(digits[6]); 
     add(mult); 
     add(digits[1]); 
     add(digits[2]); 
     add(digits[3]); 
     add(minus); 
     add(digits[0]); 
     add(dot); 
     add(equals); 
     add(plus); 
    } 

    public static void main(String[] args) { 
     Calculator calc = new Calculator(); 

     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(calc); 

     frame.setSize(300, 300); 
     frame.setVisible(true); 
    } 
} 

随着new GridLayout(5, 4, 5, 5)你定义一个5x4的网格(5行,4列)和5个像素中的小区间的间距,水平和垂直方向。之后,您只需按照正确的顺序(从左到右,从上到下)添加按钮。

+0

在问题本身,我写了它正在使用JavaScript。 – Ravia 2010-03-15 10:44:03