import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class PaymentCalculator extends JFrame{
private JPanel panelTitle,panelInput,panelButtons;
private JLabel lbltuition, lblmisc, lblscholarship, lblfee;
private JTextField txttuition, txtmisc;
private JComboBox cbscholarship;
private JRadioButton optfull, opttuition,optOther;
private ButtonGroup btnpayment;
private JCheckBox chkfees1, chkfees2, chkfees3;
private JButton btncompute, btnclear;
private JList listbuy;
private DefaultListModel listmodel;
private JFrame myFrame,myFrame2;
private double fee=0;
public PaymentCalculator() {
super("Payment Calculator");
setLayout(new BorderLayout());
panelInput = new JPanel();
add(panelInput, BorderLayout.CENTER);
panelInput.setLayout(new GridLayout(10,5,5,5));
lbltuition = new JLabel("Tuition Fee:");
//lbltuition.setBounds(10, 25, 120, 30);
panelInput.add(lbltuition);
txttuition = new JTextField(10);
txttuition.setText("0.0");
//txttuition.setBounds(170, 30, 80,60);
panelInput.add(txttuition);
lblmisc = new JLabel("Miscellaneous Fee:");
// lblmisc.setBounds(10, 55, 120, 30);
panelInput.add(lblmisc);
txtmisc = new JTextField(10);
txtmisc.setText("0.0");
//txtmisc.setBounds(170, 60, 80, 30);
panelInput.add(txtmisc);
String[] strScholar = {"", "", "", "OWA"};
lblscholarship = new JLabel("Scholarship:");
lblscholarship.setBounds(10, 90, 120, 30);
panelInput.add(lblscholarship);
cbscholarship = new JComboBox(strScholar);
cbscholarship.setBounds(130, 95, 135, 20);
panelInput.add( cbscholarship);
optfull = new JRadioButton("Full");
optfull.setBounds(20, 120, 50, 20);
panelInput.add(optfull);
opttuition = new JRadioButton("Tuition Only");
opttuition.setBounds(70, 120, 100, 20);
panelInput.add(opttuition);
btnpayment = new ButtonGroup();
btnpayment.add(optfull);
btnpayment.add(opttuition);
JLabel optOther = new JLabel("Other Fees:");
optOther.setBounds(50, 140, 100, 20);
panelInput.add(optOther);
chkfees1 = new JCheckBox("PE Shirt (500.00)");
chkfees1.setBounds(125, 140, 120, 20);
chkfees2 = new JCheckBox("Lab Manual (200.00)");
chkfees2.setBounds(125, 160, 150, 20);
chkfees3 = new JCheckBox("Lab Gown (100.00)");
chkfees3.setBounds(125, 180, 150, 20);
chkfees1.setMnemonic(500);
chkfees2.setMnemonic(200);
chkfees3.setMnemonic(100);
panelInput.add(chkfees1);
panelInput.add(chkfees2);
panelInput.add(chkfees3);
panelButtons = new JPanel();
panelButtons.setLayout(new GridLayout(4,2));
btncompute = new JButton("Compute");
btncompute.setBounds(25, 220, 100, 20);
panelInput.add(btncompute);
btnclear = new JButton("Clear");
btnclear.setBounds(155, 220, 100, 20);
panelInput.add(btnclear);
ActionListener listener = new ButtonListener();
btncompute.addActionListener(listener);
btnclear.addActionListener(listener);
ItemListener item = new ItemHandler();
chkfees1.addItemListener(item);
chkfees2.addItemListener(item);
chkfees3.addItemListener(item);
listmodel = new DefaultListModel();
listbuy = new JList(listmodel);
}
public class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent evt) {
JButton btnchoose = (JButton) evt.getSource();
double tuition = Integer.parseInt(txttuition.getText());
double misc = Integer.parseInt(txtmisc.getText());
if (btnchoose == btncompute) {
int answer = JOptionPane.showConfirmDialog(null, "Confirm Payment?", "Payment", JOptionPane.YES_NO_OPTION);
switch (answer) {
case JOptionPane.YES_OPTION:
if ((chkfees1.isSelected() == true) && (chkfees2.isSelected() == true) && (chkfees3.isSelected() == true)) {
fee = tuition + misc + chkfees1.getMnemonic() + chkfees2.getMnemonic() + chkfees3.getMnemonic();
} else if ((chkfees2.isSelected() == true) && (chkfees3.isSelected() == true)) {
fee = tuition + misc + chkfees2.getMnemonic() + chkfees3.getMnemonic();
} else if ((chkfees1.isSelected() == true) && (chkfees2.isSelected() == true)) {
fee = tuition + misc + chkfees1.getMnemonic() + chkfees2.getMnemonic();
} else if ((chkfees1.isSelected() == true) && (chkfees3.isSelected() == true)) {
fee = tuition+ misc + chkfees1.getMnemonic() + chkfees3.getMnemonic();
} else if ((chkfees1.isSelected() == true)) {
fee = tuition + misc + chkfees1.getMnemonic();
} else if ((chkfees2.isSelected() == true)) {
fee = tuition + misc + chkfees2.getMnemonic();
} else if ((chkfees3.isSelected() == true)) {
fee = (tuition ) + misc + chkfees3.getMnemonic();
} else {
fee = tuition + misc;
}
new Payment();
break;
case JOptionPane.NO_OPTION:
break; }
}
else if (btnchoose == btnclear) {
txttuition.setText("0");
txtmisc.setText("0");
chkfees1.setSelected(false);
chkfees2.setSelected(false);
chkfees3.setSelected(false);
cbscholarship.setSelectedIndex(0);
btnpayment.clearSelection();
lblfee.setText("");
return;
}
}
}
private class ItemHandler implements ItemListener {
public void itemStateChanged(ItemEvent e) {
Object select = e.getItemSelectable();
if (select == chkfees1) {
if (e.getStateChange() == ItemEvent.SELECTED) {
listmodel.addElement(chkfees1.getText());
} else {
listmodel.removeElement(chkfees1.getText());
}
} if (select == chkfees2) {
if (e.getStateChange() == ItemEvent.SELECTED) {
listmodel.addElement(chkfees2.getText());
} else {
listmodel.removeElement(chkfees2.getText());
}
} if (select ==chkfees3) {
if (e.getStateChange() == ItemEvent.SELECTED) {
listmodel.addElement(chkfees3.getText());
} else {
listmodel.removeElement(chkfees3.getText());
}
}
}
}
public class Payment extends JFrame{
public Payment(){
super("Total Payment");
setLayout(new FlowLayout());
getContentPane().setBackground(Color.white);
lblfee = new JLabel("Overall Fee: "+fee);
lblfee.setBounds(10, 10, 120, 50);
add(lblfee);
setBounds(120,220,200,100);
setSize(230, 100);
setVisible(true);
}
}
public void run() {
setSize(300, 300);
setLocationRelativeTo(null);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
PaymentCalculator tuition = new PaymentCalculator();
tuition.run();
}
}
reincom
0
Newbie Poster
Recommended Answers
Jump to Postby writing it in a JInternalFrame instead in a JFrame?
a few remarks on your if statements:
if ((chkfees1.isSelected() == true) && (chkfees2.isSelected() == true) && (chkfees3.isSelected() == true))
this can be rewritten as:
if ( chkfees1.isSelected() && chkfees2.isSelected() && chkfees3.isSelected())
makes it a lot easier to read.
…
Jump to Postwell, step one would be: create an internal frame.
All 7 Replies
stultuske
1,116
Posting Maven
Featured Poster
reincom
0
Newbie Poster
stultuske
1,116
Posting Maven
Featured Poster
reincom
0
Newbie Poster
stultuske
1,116
Posting Maven
Featured Poster
JamesCherrill
4,733
Most Valuable Poster
Team Colleague
Featured Poster
reincom
0
Newbie Poster
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.