1. 程式人生 > 實用技巧 >java Swing GUI 入門-簡易貨幣計算器

java Swing GUI 入門-簡易貨幣計算器

java Swing GUI 入門-簡易貨幣計算器

覺得有用的話,歡迎一起討論相互學習~

設計佈局

  1. JcomboBox下拉框
  2. JTextField的不可編輯的屬性
  3. 可以通過調節一個控制元件的Vertical Align屬性以調節一個元素的位置,特別是將其設定為top可以將這個控制元件調得較高,預設為center
  • 大概就這樣:

注意一定不要選中Custom Create

  • 對於 ComboBox 控制元件,單擊model屬性

新增事件操作

新增下拉框事件

  • 為了使下拉框變化時,JLabel中的值也能相應的變化,向下拉框新增動作監聽器.
    public CurrencyConverter() {
        comboBox1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                moneyTypeLabel.setText(" "+comboBox1.getSelectedItem());
            }
        });
    }//end CurrencyConverter()
  • 新增main函式,右鍵新增

新增按鈕事件

  • 思路:點選這個按鈕之後將前一個TextField中的值讀取出來乘以其和JCombox中國家幣種得匯率,得到的結果輸出到第二個TextField中.
        convertButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                double[] rates = {0.1253, 15.7953, 0.1527};//Eurc,Yen,U.S.dollar
                double selectedRate = rates[comboBox1.getSelectedIndex()];
                double converted = Double.parseDouble(canadianField.getText()) * selectedRate;
                convertedField.setText(" " + converted + " in " + comboBox1.getSelectedItem());
            }
        });

程式演示

完整程式碼

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CurrencyConverter {
    private JPanel mainPanel;
    private JPanel topPanel;
    private JPanel bottomPanel;
    private JTextField canadianField;
    private JComboBox comboBox1;
    private JButton convertButton;
    private JTextField convertedField;
    private JLabel moneyTypeLabel;

    public CurrencyConverter() {
        comboBox1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                moneyTypeLabel.setText(" " + comboBox1.getSelectedItem());
            }
        });
        convertButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                double[] rates = {0.1253, 15.7953, 0.1527};//Eurc,Yen,U.S.dollar
                double selectedRate = rates[comboBox1.getSelectedIndex()];
                double converted = Double.parseDouble(canadianField.getText()) * selectedRate;
                convertedField.setText(" " + converted + " in " + comboBox1.getSelectedItem());
            }
        });
    }//end CurrencyConverter()

    public static void main(String[] args) {
        JFrame frame = new JFrame("Currency Converter");
        frame.setContentPane(new CurrencyConverter().mainPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}//end class