嘎嘎猫! 2021-12-02 22:13 采纳率: 62.5%
浏览 21
已结题

这是一个实现银行本息的窗体计算程序

问题遇到的现象和发生背景
  1. 如何实现在复选框中选择年份然后实现本息计算?

  2. 能否美化一下窗体

3.给窗体背景上色或者渐变色

问题相关代码,请勿粘贴截图
import javax.swing.*;
import javax.swing.border.Border;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


public class DepositSystem extends JFrame{
    
    private JLabel l_deposit, l_years, l_interest, l_total;
    private JTextField t_deposite, t_interest, t_total;
    private JButton b_cal, b_reset;
    private JComboBox<String> c_years;
    
    //初始化窗体内部
    public DepositSystem() {
        
        this.setTitle("这是一个存款的计算器");
        this.setSize(500, 500);
        this.setLocation(300, 400);
        init();
        this.setVisible(true);
        
        ((JComponent) getContentPane()).setOpaque(true);
    }


    //初始化窗体部内部
    public void init() {
         this.setLayout(new GridLayout(5, 2, 5, 5));
        l_deposit = new JLabel("存款金额",JLabel.CENTER);
        l_years = new JLabel("存款年限",JLabel.CENTER);
        l_interest = new JLabel("所得利息",JLabel.CENTER);
        l_total = new JLabel("本息合计",JLabel.CENTER);
        
        
        //设置窗体内JLabel边框颜色
        Border b1 = BorderFactory.createLineBorder(Color.gray);
        l_deposit.setBorder(b1);
        Border b2 = BorderFactory.createLineBorder(Color.green);
        l_years.setBorder(b2);
        Border b3 = BorderFactory.createLineBorder(Color.blue);
        l_interest.setBorder(b3);
        Border b4 = BorderFactory.createLineBorder(Color.yellow);
        l_total.setBorder(b4);
        
        
        
        
        t_deposite = new JTextField();
        t_interest = new JTextField();
        t_total = new JTextField();
        
        c_years = new JComboBox<String>();
        c_years.addItem("请选择年份");
        c_years.addItem("一年(1.75%)");
        c_years.addItem("两年(2.25%)");
        c_years.addItem("三年(2.75%)");
        c_years.addItem("五年(2.85%)");
        c_years.addItem("十年(3.15%)");
        
        /*
        c_years.getSelectedItem().toString();
        */
        
        
        
        c_years.addItemListener(new ItemListener()
            {        
                    //开始itemStateChanged方法,该方法在选择一种颜色时自动调用
                    public void itemStateChanged(ItemEvent e) {
                    //首先获得选择的列表的索引号
                        int index = c_years.getSelectedIndex();
                        double rate;
                        //判断所选的内容
                        switch (index)
                        {
                                case 0: //一年
                                    rate = 0.0175;
                                break;
                                
                                case 1: //两年
                                    rate = 0.045;
                                break;
                                
                                case 2: //三年
                                    rate = 0.0825;
                                break;
                                
                                case 3://五年
                                    rate = 0.1425;
                                break;
                                
                                case 4://十年
                                    rate = 0.315;
                                break;
                                    
                                default: //其它情况
                                break;
                        }
                    } 
            });
        
        
        
        
        JButton b_cal = new JButton(new ImageIcon("src\\pig_cal.png"));
        
        b_cal.setBounds(250, 250, 100, 50);
        b_cal.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub    
                cal();
            }
        });
        
        JButton b_reset = new JButton(new ImageIcon("src\\pig_reset.png"));
        b_reset.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                t_deposite.setText("");
                t_interest.setText("");
                t_total.setText("");
                
            }
            
            
        });
        
        this.add(l_deposit);
        this.add(t_deposite);
        
        this.add(l_years);
        this.add(c_years);
        
        this.add(l_interest);
        this.add(t_interest);
        
        this.add(l_total);
        this.add(t_total);
        
        this.add(b_cal);
        this.add(b_reset);
    }
    
    public double cal() {
        float deposit = Float.parseFloat(l_deposit.getText());
        JComboBox jComboBox = null;
        
        return deposit + deposit *  ;
        
        
    }
    
    
}

######上述代码是代码的半成品,望各位指正。

运行结果

img


上图是窗体的模样,

  • 写回答

1条回答 默认 最新

  • 关注

    可以给窗体设置背景颜色,通过getContentPane().setBackgroud(Color.red)方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月2日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题