import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.border.TitledBorder;
import javax.swing.text.MaskFormatter;
public class BezugskalkulationGui implements ActionListener {
private JFrame frame;
private JPanel panel, panel1, panel2;
private JLabel llistVK, lzielVK, lbarEP, lbP, lsK, lbarVP, lzielVP, lvPo,
lvPm, lZVR, lZVS, lBP, lHk, lGz, lKs, lKr, lMs, lEp;
private JTextField tlistVK, tzielVK, tbarEP, tbP, tsK, tbarVP, tzielVP,
tvPo, tvPm, tZVR, tZVS, tBP, tHk, tGz, tKs, tKr, tMs, tEp;
private JButton berechnen;
private JRadioButton bt1, bt2;
private ButtonGroup group;
private MaskFormatter formatter;
public double dlistVK, dZVS, dZVR, dBP, dHK, dGz, dKs, dKr, dMs, dvPm;
public BezugskalkulationGui() {
init();
}
public void init() {
createFrame();
createPanel();
createLabel();
createFormattedTextField();
createButton();
createRadioButton();
addLayout();
show();
}
public void createFrame() {
frame = new JFrame("Bezugskalkulation");
}
public void createPanel() {
// Panels + Rahmen werden erzeugt
panel = new JPanel(new GridLayout(7, 2));
panel.setBorder(new TitledBorder("Bezugskalkulation:"));
panel1 = new JPanel(new GridLayout(11, 2));
panel1.setBorder(new TitledBorder("Verkaufspreiskalkulation:"));
panel2 = new JPanel();
}
public void createLabel() {
// labels werden erzeugt
llistVK = new JLabel("Listenverkaufspreis:");
lzielVK = new JLabel("Zielverkaufspreis:");
lbarEP = new JLabel("Bareinkaufspreis:");
lbP = new JLabel("Bezugspreis:");
lsK = new JLabel("Selbstkosten:");
lbarVP = new JLabel("Barverkaufspreis:");
lzielVP = new JLabel("Zielverkaufspreis:");
lvPo = new JLabel("Verkaufspreis(ohne MwSt):");
lvPm = new JLabel("Verkaufspreis(mit MwSt):");
lZVR = new JLabel("Zieleinkaufsrabbat: (%)");
lZVS = new JLabel("Zieleinkaufsskonto: (%)");
lBP = new JLabel("Bezugskosten:");
lEp = new JLabel("Bezugspreis/Einstandskosten:");
lHk = new JLabel("Handlungskosten: (%)");
lGz = new JLabel("Gwinnzuschlag: (%)");
lKs = new JLabel("Kundenskonto: (i.H %)");
lKr = new JLabel("Kundenrabbat: (i.H %)");
lMs = new JLabel("MwSt: (%)");
}
public void createFormattedTextField() {
// Textfelder werden erzeugt
tlistVK = new JTextField(2);
tzielVK = new JTextField(20);
tbarEP = new JTextField();
tbP = new JTextField();
tsK = new JTextField();
tbarVP = new JTextField();
tzielVP = new JTextField();
tvPo = new JTextField();
tvPm = new JTextField();
tZVR = new JTextField();
tZVS = new JTextField();
tBP = new JTextField();
tHk = new JTextField();
tGz = new JTextField();
tKs = new JTextField();
tKr = new JTextField();
tMs = new JTextField();
tEp = new JTextField();
}
public void createButton() {
berechnen = new JButton("Berechnen");
berechnen.addActionListener(this);
}
public void createRadioButton() {
bt1 = new JRadioButton("nach Verkaufspreis brutto");
bt2 = new JRadioButton("nach Listenverkaufspreis");
bt1.setSelected(true);
bt1.addActionListener(this);
bt2.addActionListener(this);
group = new ButtonGroup();
group.add(bt1);
group.add(bt2);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (e.getSource() == bt1) {
tzielVK.setEditable(false);
tbarEP.setEditable(false);
tbP.setEditable(false);
tsK.setEditable(false);
tbarVP.setEditable(false);
tzielVP.setEditable(false);
tvPo.setEditable(false);
tvPm.setText("");
tvPm.setEditable(false);
tEp.setEditable(false);
tlistVK.setEditable(true);
} else if (e.getSource() == bt2) {
tzielVK.setEditable(false);
tbarEP.setEditable(false);
tbP.setEditable(false);
tsK.setEditable(false);
tbarVP.setEditable(false);
tzielVP.setEditable(false);
tvPo.setEditable(false);
tEp.setEditable(false);
tvPm.setEditable(true);
tlistVK.setText("");
tlistVK.setEditable(false);
}
dlistVK = new Double(tlistVK.getText().replace(',', '.'));
dvPm = new Double(tlistVK.getText().replace(',', '.'));
dZVR = new Double(tZVR.getText().replace(',', '.'));
dZVS = new Double(tZVS.getText().replace(',', '.'));
dBP = new Double(tBP.getText().replace(',', '.'));
dHK = new Double(tHk.getText().replace(',', '.'));
dGz = new Double(tGz.getText().replace(',', '.'));
dKs = new Double(tKs.getText().replace(',', '.'));
dKr = new Double(tKr.getText().replace(',', '.'));
dMs = new Double(tMs.getText().replace(',', '.'));
System.out.println(dlistVK);
System.out.println(dZVR);
System.out.println(dZVS);
System.out.println(dBP);
System.out.println(dHK);
System.out.println(dGz);
System.out.println(dKs);
System.out.println(dKr);
System.out.println(dMs);
}
public void addLayout() {
// Labels,Textfelder und Buttons werden dem jeweiligen Panel zugeordnet
panel.add(llistVK);
panel.add(tlistVK);
panel.add(lZVR);
panel.add(tZVR);
panel.add(lzielVK);
panel.add(tzielVK);
panel.add(lZVS);
panel.add(tZVS);
panel.add(lbarEP);
panel.add(tbarEP);
panel.add(lBP);
panel.add(tBP);
panel.add(lbP);
panel.add(tbP);
panel1.add(lEp);
panel1.add(tEp);
panel1.add(lHk);
panel1.add(tHk);
panel1.add(lsK);
panel1.add(tsK);
panel1.add(lGz);
panel1.add(tGz);
panel1.add(lbarVP);
panel1.add(tbarVP);
panel1.add(lKs);
panel1.add(tKs);
panel1.add(lzielVP);
panel1.add(tzielVP);
panel1.add(lKr);
panel1.add(tKr);
panel1.add(lvPo);
panel1.add(tvPo);
panel1.add(lMs);
panel1.add(tMs);
panel1.add(lvPm);
panel1.add(tvPm);
panel2.add(berechnen, BorderLayout.CENTER);
panel2.add(bt1, BorderLayout.EAST);
panel2.add(bt2, BorderLayout.EAST);
// Panels werdem dem JFrame übergeben
frame.add(panel);
frame.add(panel1);
frame.add(panel2);
}
public void show() {
// Panels werden im frame angeordnet
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.getContentPane().add(panel1, BorderLayout.CENTER);
frame.getContentPane().add(panel2, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
// frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
new BezugskalkulationGui();
}
}