问题遇到的现象和发生背景
如何实现在复选框中选择年份然后实现本息计算?
能否美化一下窗体
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 * ;
}
}
######上述代码是代码的半成品,望各位指正。
运行结果
上图是窗体的模样,