You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

306 lines
8.8 KiB

  1. package MeinBudgetView;
  2. import java.awt.EventQueue;
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. import javax.swing.border.EmptyBorder;
  6. import javax.swing.JTextField;
  7. import java.awt.Image;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.KeyEvent;
  11. import java.awt.event.KeyListener;
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JButton;
  14. import javax.swing.JLabel;
  15. import javax.swing.JOptionPane;
  16. import java.awt.Font;
  17. import javax.swing.JComboBox;
  18. import javax.swing.JTextArea;
  19. import java.awt.Color;
  20. import javax.swing.JSeparator;
  21. import javax.swing.JScrollPane;
  22. import javax.swing.JTable;
  23. import javax.swing.table.DefaultTableModel;
  24. import javax.swing.border.EtchedBorder;
  25. import javax.swing.border.MatteBorder;
  26. import javax.swing.border.BevelBorder;
  27. import javax.swing.border.TitledBorder;
  28. import javax.swing.UIManager;
  29. public class MeinGui extends JFrame implements ActionListener, KeyListener {
  30. private JPanel contentPane;
  31. public static JTextField text1;
  32. public static JTextField text2;
  33. JLabel labelBudgetImage;
  34. JLabel labelExpensesImage;
  35. JLabel labelBalancetImage;
  36. JLabel labelHauptImage;
  37. JButton senden;
  38. JButton berechne;
  39. JLabel leeren;
  40. JButton loeschen;
  41. JButton exit;
  42. public static JLabel budgetDispaly;
  43. public static JLabel expensesDisplay;
  44. public static JLabel balanceDisplay;
  45. public static double budget;
  46. public static double expenses;
  47. public static double balance;
  48. public static JTextField textExpensesName;
  49. public static JLabel ausgabenName;
  50. private static JLabel ausgabenBetrag;
  51. private static JLabel budgetBetrag;
  52. private static JTable myTable;
  53. public MeinGui() {
  54. setTitle("Budget");
  55. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  56. setBounds(100, 100, 654, 368);
  57. contentPane = new JPanel();
  58. contentPane.setBackground(Color.orange);
  59. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  60. setContentPane(contentPane);
  61. contentPane.setLayout(null);
  62. this.berechne = new JButton("Berechne");
  63. berechne.setBounds(78, 281, 110, 23);
  64. berechne.setToolTipText("");
  65. contentPane.add(berechne);
  66. this.senden = new JButton("Senden");
  67. senden.setBounds(78, 126, 110, 23);
  68. contentPane.add(senden);
  69. text1 = new JTextField();
  70. text1.setBounds(60, 97, 128, 20);
  71. contentPane.add(text1);
  72. text1.setColumns(10);
  73. text2 = new JTextField();
  74. text2.setBounds(60, 250, 128, 20);
  75. contentPane.add(text2);
  76. text2.setColumns(10);
  77. labelHauptImage = new JLabel("");
  78. labelHauptImage.setBounds(10, 0, 86, 61);
  79. Image image0 = new ImageIcon(this.getClass().getResource("/budgetapp.png")).getImage();
  80. labelHauptImage.setIcon(new ImageIcon(image0));
  81. labelHauptImage.setFont(new Font("Tahoma", Font.BOLD, 13));
  82. contentPane.add(labelHauptImage);
  83. JLabel budgetEingeben = new JLabel("Budget eingeben");
  84. budgetEingeben.setBounds(10, 72, 110, 20);
  85. budgetEingeben.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  86. contentPane.add(budgetEingeben);
  87. JLabel labelBudget = new JLabel("Budget");
  88. labelBudget.setBounds(255, 8, 46, 14);
  89. contentPane.add(labelBudget);
  90. JLabel labelExpenses = new JLabel("Expenses");
  91. labelExpenses.setBounds(390, 8, 56, 14);
  92. contentPane.add(labelExpenses);
  93. JLabel labelBalance = new JLabel("Balance");
  94. labelBalance.setBounds(543, 8, 46, 14);
  95. contentPane.add(labelBalance);
  96. labelBudgetImage = new JLabel("");
  97. labelBudgetImage.setBounds(255, 22, 46, 55);
  98. Image image1 = new ImageIcon(this.getClass().getResource("/money.png")).getImage();
  99. labelBudgetImage.setIcon(new ImageIcon(image1));
  100. contentPane.add(labelBudgetImage);
  101. labelExpensesImage = new JLabel("");
  102. labelExpensesImage.setBounds(400, 22, 46, 55);
  103. Image image2 = new ImageIcon(this.getClass().getResource("/wings-icon.png")).getImage();
  104. labelExpensesImage.setIcon(new ImageIcon(image2));
  105. contentPane.add(labelExpensesImage);
  106. labelBalancetImage = new JLabel("New labelBalance");
  107. labelBalancetImage.setBounds(543, 22, 34, 55);
  108. Image image3 = new ImageIcon(this.getClass().getResource("/Money-icon.png")).getImage();
  109. labelBalancetImage.setIcon(new ImageIcon(image3));
  110. contentPane.add(labelBalancetImage);
  111. JLabel budgetAusgeben = new JLabel("Ausgaben");
  112. budgetAusgeben.setBounds(10, 185, 63, 14);
  113. budgetAusgeben.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  114. contentPane.add(budgetAusgeben);
  115. this.leeren = new JLabel("Leeren");
  116. leeren.setBounds(317, 253, 115, 14);
  117. leeren.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  118. contentPane.add(leeren);
  119. this.loeschen = new JButton("L\u00F6schen");
  120. loeschen.setBounds(301, 281, 89, 23);
  121. contentPane.add(loeschen);
  122. this.exit = new JButton("Exit\r\n");
  123. exit.setBounds(477, 281, 95, 23);
  124. contentPane.add(exit);
  125. JLabel beendne = new JLabel("Beenden");
  126. beendne.setBounds(491, 253, 81, 14);
  127. beendne.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  128. contentPane.add(beendne);
  129. budgetDispaly = new JLabel("0.0 \u20AC");
  130. budgetDispaly.setBounds(255, 82, 86, 14);
  131. budgetDispaly.setFont(new Font("Tahoma", Font.BOLD, 12));
  132. contentPane.add(budgetDispaly);
  133. expensesDisplay = new JLabel("0.0 \u20AC");
  134. expensesDisplay.setBounds(390, 82, 110, 14);
  135. expensesDisplay.setFont(new Font("Tahoma", Font.BOLD, 12));
  136. contentPane.add(expensesDisplay);
  137. balanceDisplay = new JLabel("0.0 \u20AC");
  138. balanceDisplay.setBounds(543, 82, 85, 14);
  139. balanceDisplay.setFont(new Font("Tahoma", Font.BOLD, 12));
  140. contentPane.add(balanceDisplay);
  141. textExpensesName = new JTextField();
  142. textExpensesName.setBounds(60, 221, 128, 20);
  143. textExpensesName.setToolTipText("");
  144. contentPane.add(textExpensesName);
  145. textExpensesName.setColumns(10);
  146. ausgabenName = new JLabel(" Name");
  147. ausgabenName.setBounds(10, 224, 46, 14);
  148. contentPane.add(ausgabenName);
  149. ausgabenBetrag = new JLabel(" Betrag");
  150. ausgabenBetrag.setBounds(10, 253, 46, 14);
  151. contentPane.add(ausgabenBetrag);
  152. budgetBetrag = new JLabel(" Betrag");
  153. budgetBetrag.setBounds(10, 100, 46, 14);
  154. contentPane.add(budgetBetrag);
  155. JScrollPane scrollPane_1 = new JScrollPane();
  156. scrollPane_1.setBounds(347, 126, 136, 88);
  157. contentPane.add(scrollPane_1);
  158. myTable = new JTable();
  159. myTable.setColumnSelectionAllowed(true);
  160. myTable.setCellSelectionEnabled(true);
  161. myTable.setBorder(UIManager.getBorder("Tree.editorBorder"));
  162. myTable.setFont(new Font("Tahoma", Font.BOLD, 11));
  163. myTable.setModel(new DefaultTableModel(new Object[][] {}, new String[] { "Name", "Kosten" }) {
  164. Class[] columnTypes = new Class[] { String.class, Integer.class };
  165. public Class getColumnClass(int columnIndex) {
  166. return columnTypes[columnIndex];
  167. }
  168. boolean[] columnEditables = new boolean[] { false, false };
  169. public boolean isCellEditable(int row, int column) {
  170. return columnEditables[column];
  171. }
  172. });
  173. scrollPane_1.setViewportView(myTable);
  174. text1.addActionListener(this);
  175. text1.addKeyListener(this);
  176. text2.addActionListener(this);
  177. text2.addKeyListener(this);
  178. senden.addActionListener(this);
  179. senden.addKeyListener(this);
  180. berechne.addActionListener(this);
  181. berechne.addKeyListener(this);
  182. loeschen.addActionListener(this);
  183. loeschen.addKeyListener(this);
  184. exit.addActionListener(this);
  185. exit.addKeyListener(this);
  186. }
  187. @Override
  188. public void actionPerformed(ActionEvent ae) {
  189. if (ae.getSource() == this.exit) {
  190. exitButton();
  191. }
  192. if (ae.getSource() == this.loeschen) {
  193. leeren();
  194. }
  195. budget = Double.parseDouble(text1.getText());
  196. if (ae.getSource() == this.senden && (text1 != null && text2 != null)) {
  197. budgetDispaly.setText(setBudgetView());
  198. }
  199. if (ae.getSource() == this.berechne && (text1 != null && text2 != null)) {
  200. DefaultTableModel tab = (DefaultTableModel) myTable.getModel();
  201. tab.addRow(new Object[] { (textExpensesName.getText()), Double.parseDouble(text2.getText()) });
  202. balance -= Double.parseDouble(text2.getText());
  203. expenses += Double.parseDouble(text2.getText());
  204. expensesDisplay.setText(setExpensesView());
  205. balanceDisplay.setText(setBalanceView());
  206. }
  207. }
  208. public static void exitButton() {
  209. System.exit(0);
  210. }
  211. public static void leeren() {
  212. text1.setText("");
  213. text2.setText("");
  214. budgetDispaly.setText("0.0 �");
  215. expensesDisplay.setText("0.0 �");
  216. balanceDisplay.setText("0.0 �");
  217. textExpensesName.setText("");
  218. ((DefaultTableModel) myTable.getModel()).setRowCount(0);
  219. }
  220. public static String setBudgetView() {
  221. String result = budget + " �";
  222. return result;
  223. }
  224. public static String setBalanceView() {
  225. String result = budget - expenses + " �";
  226. return result;
  227. }
  228. public static String setExpensesView() {
  229. String result = "-" + expenses + " �";
  230. return result;
  231. }
  232. @Override
  233. public void keyTyped(KeyEvent e) {
  234. }
  235. @Override
  236. public void keyPressed(KeyEvent e) {
  237. if (e.getKeyCode() == KeyEvent.VK_DELETE) {
  238. leeren();
  239. }
  240. if (e.getKeyCode() == KeyEvent.VK_F5) {
  241. exitButton();
  242. }
  243. }
  244. @Override
  245. public void keyReleased(KeyEvent e) {
  246. // TODO Auto-generated method stub
  247. }
  248. }