按钮控件数组实现计算器界面
數組的應用范圍非常廣泛,靈活運用可以提高程序的開發效率,減少重復代碼。例如,本實例通過按鈕數組來管理界面中的所有按鈕控件,從而使用最少的代碼實現了模擬的計算器界面。實例運行效果如圖
本實例的關鍵點在于GridLayout布局管理器的應用,通過它可以自動完成控件的布局與大小控制;否則,還要單獨創建控制每個控件位置與大小的代碼,其代碼復雜度可想而知。通過GridLayout布局管理器,只需要指定布局的行列數量即可。下面介紹GUI如何使用GridLayout布局管理器。 ?創建指定行列數量的布局管理器 可以在GridLayout類的構造方法中傳遞兩個int類型的參數,分別指定布局的行數與列數,其方法聲明如下: public GridLayout(int rows, int cols) 參數說明 rows:布局的行數。 cols:布局的列數。 ?設置容器的布局管理器 創建容器布局管理器后,可以把它添加到某個容器的layout屬性中,這需要調用容器的設置布局管理器的方法來實現,其語法聲明如下: public void setLayout(LayoutManager mgr) 參數說明 mgr:布局管理器對象。
在項目中創建ButtonArrayExample窗體類。在窗體中添加一個文本框控件用于模擬計算器的液晶屏,然后在構造方法中設置窗體標題、布局管理器,并創建JButton控件的二維數組,其中每個數組元素都初始化為一個按鈕控件,同時再聲明一個按鈕名稱的字符串數組,這兩個數組共同初始化界面中的所有按鈕控件。代碼如下:
import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.JTextField; import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.SwingConstants;
public class ButtonArrayExample extends JFrame { // 繼承窗體類JFrame /** * */ private static final long serialVersionUID = 6626440733001287873L; private JTextField textField;
public static void main(String args[]) {try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");} catch (Throwable e) {e.printStackTrace();}ButtonArrayExample frame = new ButtonArrayExample();frame.setVisible(true); // 設置窗體可見,默認為不可見 }public ButtonArrayExample() {super(); // 繼承父類的構造方法BorderLayout borderLayout = (BorderLayout) getContentPane().getLayout();borderLayout.setHgap(20);borderLayout.setVgap(10);setTitle("按鈕數組實現計算器界面 "); // 設置窗體的標題setBounds(100, 100, 290, 282); // 設置窗體的顯示位置及大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置窗體關閉按鈕的動作為退出textField = new JTextField();textField.setHorizontalAlignment(SwingConstants.TRAILING);textField.setPreferredSize(new Dimension(12, 50));getContentPane().add(textField, BorderLayout.NORTH);textField.setColumns(10);final GridLayout gridLayout = new GridLayout(4, 0); // 創建網格布局管理器對象gridLayout.setHgap(5); // 設置組件的水平間距gridLayout.setVgap(5); // 設置組件的垂直間距JPanel panel = new JPanel(); // 獲得容器對象panel.setLayout(gridLayout); // 設置容器采用網格布局管理器getContentPane().add(panel, BorderLayout.CENTER);String[][] names = { { "1", "2", "3", "+" }, { "4", "5", "6", "-" },{ "7", "8", "9", "×" }, { ".", "0", "=", "÷" } };JButton[][] buttons = new JButton[4][4];for (int row = 0; row < names.length; row++) {for (int col = 0; col < names.length; col++) {buttons[row][col] = new JButton(names[row][col]); // 創建按鈕對象panel.add(buttons[row][col]); // 將按鈕添加到面板中}} }}
心法領悟:用數組管理重復類型的數據。 像本實例的界面設計一樣,程序開發中有很多重復類型的數據,在界面設計器中可以清晰地看出重復性的按鈕控件。
轉載于:https://my.oschina.net/u/3212883/blog/840462
總結
以上是生活随笔為你收集整理的按钮控件数组实现计算器界面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ADSL组建局域网快捷方案 (转)
- 下一篇: Android音频开发(1):音频相关知