C語言中文網 目錄
首頁 > Java Swing 閱讀:2,752

Java Swing計算器界面的實現

< 上一頁Swing列表框 Swing事件監聽下一頁 >

在本節之前已經詳細介紹了 Swing容器布局管理器以及常用的基本組件。本案例將綜合運用這些知識實現一個計算器的布局。在本實例中使用兩種布局管理器來進行界面設計。

計算器界面可以分成兩部分,即顯示區和鍵盤區。顯示區可以使用文本框組件,鍵盤區則是由很多按鈕組成,可以使用網格布局管理器。詳細的實現過程如下。

(1) 新建一個繼承自 JFrame 的 CalculatorDemo 類。

(2) 為類添加構造方法和 main() 方法,主要代碼如下所示。
package ch17;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
public class CalculatorDemo extends JFrame
{
    private JPanel contentPane;    //內容面板
    private JTextField textField;    //文本框
    public CalculatorDemo(){};    //構造方法
    public static void main(String[] args)
    {
        CalculatorDemo frame=new CalculatorDemo();
        frame.setVisible(true);
    }
}

(3) 在構造方法中設置窗口的標題和大小等屬性,然后使用邊界面板向北部添加一個 JTextField 組件,主要代碼如下所示。
public CalculatorDemo()
{
    setTitle("計算器");    //設置窗體的標題
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //設置窗體退出時操作
    setBounds(100, 100, 250, 200);    //設置窗體位置和大小
    contentPane=new JPanel();    //創建內容面板
    contentPane.setBorder(new EmptyBorder(5,5,5,5));    //設置面板的邊框
    contentPane.setLayout(new BorderLayout(0,0));    //設置內容面板為邊界布局
    setContentPane(contentPane);    //應用內容面板
    JPanel panel1=new JPanel();    //新建面板用于保存文本框
    contentPane.add(panel1,BorderLayout.NORTH);    //將面板放置在邊界布局的北部
    textField=new JTextField();    //新建文本框
    textField.setHorizontalAlignment(SwingConstants.RIGHT);    //文本框中的文本使用右對齊
    panel1.add(textField);    //將文本框增加到面板中
    textField.setColumns(18);    //設置文本框的列數是18
}

(4) 接下來使用網格布局管理器添加多個按鈕作為計算器的鍵盤區,主要代碼如下所示。
JPanel panel2=new JPanel();    //新建面板用于保存按鈕
contentPane.add(panel2, BorderLayout.CENTER);    //將面板放置在邊界布局的中央
panel2.setLayout(new GridLayout(4,4,5,5));    //面板使用網格4X4布局
JButton button01=new JButton("7");    //新建按鈕
panel2.add(button01);    //應用按鈕
JButton button02=new JButton("8");    //新建按鈕
panel2.add(button02);    //應用按鈕
JButton button03=new JButton("9");    //新建按鈕
panel2.add(button03);    //應用按鈕
JButton button04=new JButton("+");    //新建按鈕
panel2.add(button04);    //應用按鈕
JButton button05=new JButton("4");    //新建按鈕
panel2.add(button05);    //應用按鈕
JButton button06=new JButton("5");    //新建按鈕
panel2.add(button06);    //應用按鈕
JButton button07=new JButton("6");    //新建按鈕
panel2.add(button07);    //應用按鈕
JButton button08=new JButton("-");    //新建按鈕
panel2.add(button08);    //應用按鈕
JButton button09=new JButton("3");    //新建按鈕
panel2.add(button09);    //應用按鈕
JButton button10=new JButton("2");    //新建按鈕
panel2.add(button10);    //應用按鈕
JButton button11=new JButton("1");    //新建按鈕
panel2.add(button11);    //應用按鈕
JButton button12=new JButton("*");    //新建按鈕
panel2.add(button12);    //應用按鈕
JButton button13=new JButton("0");    //新建按鈕
panel2.add(button13);    //應用按鈕
JButton button14=new JButton(".");    //新建按鈕
panel2.add(button14);    //應用按鈕
JButton button15=new JButton("=");    //新建按鈕
panel2.add(button15);    //應用按鈕
JButton button16=new JButton("/");    //新建按鈕
panel2.add(button16);    //應用按鈕

(5) 最終程序的運行效果如圖 1 所示。

計算器布局效果
圖1 計算器布局效果
< 上一頁Swing列表框 Swing事件監聽下一頁 >

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo