国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

按鈕控件數組實現計算器界面

2019-11-08 18:52:34
字體:
來源:轉載
供稿:網友

       數組的應用范圍非常廣泛,靈活運用可以提高程序的開發效率,減少重復代碼。例如,本實例通過按鈕數組來管理界面中的所有按鈕控件,從而使用最少的代碼實現了模擬的計算器界面。實例運行效果如圖

        本實例的關鍵點在于GridLayout布局管理器的應用,通過它可以自動完成控件的布局與大小控制;否則,還要單獨創建控制每個控件位置與大小的代碼,其代碼復雜度可想而知。通過GridLayout布局管理器,只需要指定布局的行列數量即可。下面介紹GUI如何使用GridLayout布局管理器。

q 創建指定行列數量的布局管理器

可以在GridLayout類的構造方法中傳遞兩個int類型的參數,分別指定布局的行數與列數,其方法聲明如下:

public GridLayout(int rows, int cols)

參數說明

? rows:布局的行數。

 cols:布局的列數。

q 設置容器的布局管理器

創建容器布局管理器后,可以把它添加到某個容器的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]); // 將按鈕添加到面板中

            }

        }

    }

}

心法領悟:用數組管理重復類型的數據。

像本實例的界面設計一樣,程序開發中有很多重復類型的數據,在界面設計器中可以清晰地看出重復性的按鈕控件。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒城县| 龙陵县| 辉南县| 漳州市| 孟村| 望都县| 微山县| 东山县| 齐齐哈尔市| 满城县| 东光县| 巴中市| 靖西县| 合阳县| 象山县| 常州市| 房产| 略阳县| 福海县| 习水县| 绵竹市| 湘阴县| 额尔古纳市| 嫩江县| 德令哈市| 望奎县| 随州市| 彩票| 新竹县| 玉山县| 大荔县| 株洲市| 山东省| 西青区| 静海县| 澄迈县| 阿瓦提县| 靖西县| 兴仁县| 达尔| 盐池县|