• java Swing GUI 入门-简易货币计算器


    java Swing GUI 入门-简易货币计算器

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    设计布局

    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
    
    
  • 相关阅读:
    文件操作:fopen()
    memset函数
    窗体操作:GetWindowLong()
    窗体操作:CBrush类
    窗体操作:GetWindowLong()
    窗体操作:ShowWindow(SW_HIDE)
    文件选择对话框:CFileDialog
    信息提示框:MessageBox
    mysql的text类型长度问题
    PV是什么意思
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/14168232.html
Copyright © 2020-2023  润新知