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.

281 lines
8.0 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 javax.swing.ImageIcon;
  11. import javax.swing.JButton;
  12. import javax.swing.JLabel;
  13. import javax.swing.JOptionPane;
  14. import java.awt.Font;
  15. import javax.swing.JComboBox;
  16. import javax.swing.JTextArea;
  17. import java.awt.Color;
  18. import javax.swing.JSeparator;
  19. import javax.swing.JScrollPane;
  20. import javax.swing.JTable;
  21. import javax.swing.table.DefaultTableModel;
  22. public class MeinGui extends JFrame implements ActionListener {
  23. private JPanel contentPane;
  24. public static JTextField text1;
  25. public static JTextField text2;
  26. JLabel labelBudgetImage;
  27. JLabel labelExpensesImage;
  28. JLabel labelBalancetImage;
  29. JLabel labelHauptImage;
  30. JButton senden;
  31. JButton berechne;
  32. JLabel leeren;
  33. JButton loeschen;
  34. JButton exit;
  35. public static JLabel budgetDispaly;
  36. public static JLabel expensesDisplay;
  37. public static JLabel balanceDisplay;
  38. public static int budget;
  39. public static int expenses;
  40. public static int balance;
  41. public static JTextField textExpensesName;
  42. public static JLabel ausgabenName;
  43. private static JLabel ausgabenBetrag;
  44. private static JLabel budgetBetrag;
  45. private static JTable myTable;
  46. /**
  47. * Launch the application.
  48. */
  49. public static void main(String[] args) {
  50. EventQueue.invokeLater(new Runnable() {
  51. public void run() {
  52. try {
  53. MeinGui frame = new MeinGui();
  54. frame.setVisible(true);
  55. } catch (Exception e) {
  56. e.printStackTrace();
  57. }
  58. }
  59. });
  60. }
  61. /**
  62. * Create the frame.
  63. */
  64. public MeinGui() {
  65. setTitle("Budget");
  66. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  67. setBounds(100, 100, 654, 368);
  68. contentPane = new JPanel();
  69. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  70. setContentPane(contentPane);
  71. contentPane.setLayout(null);
  72. this.berechne = new JButton("Berechne");
  73. berechne.setBounds(78, 281, 110, 23);
  74. berechne.setToolTipText("");
  75. contentPane.add(berechne);
  76. this.senden = new JButton("Senden");
  77. senden.setBounds(78, 126, 110, 23);
  78. contentPane.add(senden);
  79. text1 = new JTextField();
  80. text1.setBounds(60, 97, 128, 20);
  81. contentPane.add(text1);
  82. text1.setColumns(10);
  83. text2 = new JTextField();
  84. text2.setBounds(60, 250, 128, 20);
  85. contentPane.add(text2);
  86. text2.setColumns(10);
  87. labelHauptImage = new JLabel("");
  88. labelHauptImage.setBounds(10, 0, 86, 61);
  89. Image image0 = new ImageIcon(this.getClass().getResource("/budgetapp.png")).getImage();
  90. labelHauptImage.setIcon(new ImageIcon(image0));
  91. labelHauptImage.setFont(new Font("Tahoma", Font.BOLD, 13));
  92. contentPane.add(labelHauptImage);
  93. JLabel budgetEingeben = new JLabel("Budget eingeben");
  94. budgetEingeben.setBounds(10, 72, 110, 20);
  95. budgetEingeben.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  96. contentPane.add(budgetEingeben);
  97. JLabel labelBudget = new JLabel("Budget");
  98. labelBudget.setBounds(255, 8, 46, 14);
  99. contentPane.add(labelBudget);
  100. JLabel labelExpenses = new JLabel("Expenses");
  101. labelExpenses.setBounds(390, 8, 56, 14);
  102. contentPane.add(labelExpenses);
  103. JLabel labelBalance = new JLabel("Balance");
  104. labelBalance.setBounds(543, 8, 46, 14);
  105. contentPane.add(labelBalance);
  106. labelBudgetImage = new JLabel("");
  107. labelBudgetImage.setBounds(255, 22, 46, 55);
  108. Image image1 = new ImageIcon(this.getClass().getResource("/money.png")).getImage();
  109. labelBudgetImage.setIcon(new ImageIcon(image1));
  110. contentPane.add(labelBudgetImage);
  111. labelExpensesImage = new JLabel("");
  112. labelExpensesImage.setBounds(400, 22, 46, 55);
  113. Image image2 = new ImageIcon(this.getClass().getResource("/wings-icon.png")).getImage();
  114. labelExpensesImage.setIcon(new ImageIcon(image2));
  115. contentPane.add(labelExpensesImage);
  116. labelBalancetImage = new JLabel("New labelBalance");
  117. labelBalancetImage.setBounds(543, 22, 34, 55);
  118. Image image3 = new ImageIcon(this.getClass().getResource("/Money-icon.png")).getImage();
  119. labelBalancetImage.setIcon(new ImageIcon(image3));
  120. contentPane.add(labelBalancetImage);
  121. JLabel budgetAusgeben = new JLabel("Ausgaben");
  122. budgetAusgeben.setBounds(10, 185, 63, 14);
  123. budgetAusgeben.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  124. contentPane.add(budgetAusgeben);
  125. this.leeren = new JLabel("Leeren");
  126. leeren.setBounds(317, 253, 115, 14);
  127. leeren.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  128. contentPane.add(leeren);
  129. this.loeschen = new JButton("L\u00F6schen");
  130. loeschen.setBounds(301, 281, 89, 23);
  131. contentPane.add(loeschen);
  132. this.exit = new JButton("Exit\r\n");
  133. exit.setBounds(477, 281, 95, 23);
  134. contentPane.add(exit);
  135. JLabel beendne = new JLabel("Beenden");
  136. beendne.setBounds(491, 253, 81, 14);
  137. beendne.setFont(new Font("Estrangelo Edessa", Font.BOLD, 14));
  138. contentPane.add(beendne);
  139. budgetDispaly = new JLabel("0.0 \u20AC");
  140. budgetDispaly.setBounds(255, 82, 86, 14);
  141. budgetDispaly.setFont(new Font("Tahoma", Font.BOLD, 12));
  142. contentPane.add(budgetDispaly);
  143. expensesDisplay = new JLabel("0.0 \u20AC");
  144. expensesDisplay.setBounds(390, 82, 110, 14);
  145. expensesDisplay.setFont(new Font("Tahoma", Font.BOLD, 12));
  146. contentPane.add(expensesDisplay);
  147. balanceDisplay = new JLabel("0.0 \u20AC");
  148. balanceDisplay.setBounds(543, 82, 85, 14);
  149. balanceDisplay.setFont(new Font("Tahoma", Font.BOLD, 12));
  150. contentPane.add(balanceDisplay);
  151. textExpensesName = new JTextField();
  152. textExpensesName.setBounds(60, 221, 128, 20);
  153. textExpensesName.setToolTipText("");
  154. contentPane.add(textExpensesName);
  155. textExpensesName.setColumns(10);
  156. ausgabenName = new JLabel(" Name");
  157. ausgabenName.setBounds(10, 224, 46, 14);
  158. contentPane.add(ausgabenName);
  159. ausgabenBetrag = new JLabel(" Betrag");
  160. ausgabenBetrag.setBounds(10, 253, 46, 14);
  161. contentPane.add(ausgabenBetrag);
  162. budgetBetrag = new JLabel(" Betrag");
  163. budgetBetrag.setBounds(10, 100, 46, 14);
  164. contentPane.add(budgetBetrag);
  165. JScrollPane scrollPane_1 = new JScrollPane();
  166. scrollPane_1.setBounds(323, 126, 197, 88);
  167. contentPane.add(scrollPane_1);
  168. myTable = new JTable();
  169. myTable.setModel(new DefaultTableModel(new Object[][] {}, new String[] { "Name", "Kosten" }) {
  170. Class[] columnTypes = new Class[] { String.class, Integer.class };
  171. public Class getColumnClass(int columnIndex) {
  172. return columnTypes[columnIndex];
  173. }
  174. boolean[] columnEditables = new boolean[] { false, false };
  175. public boolean isCellEditable(int row, int column) {
  176. return columnEditables[column];
  177. }
  178. });
  179. scrollPane_1.setViewportView(myTable);
  180. text1.addActionListener(this);
  181. text2.addActionListener(this);
  182. senden.addActionListener(this);
  183. berechne.addActionListener(this);
  184. loeschen.addActionListener(this);
  185. exit.addActionListener(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. leerButton();
  194. }
  195. budget = Integer.parseInt(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. expenses = budget - Integer.parseInt(text2.getText());
  201. expensesDisplay.setText(setExpensesView());
  202. balance = Integer.parseInt(text1.getText()) - Integer.parseInt(text2.getText());
  203. balanceDisplay.setText(setBalanceView());
  204. }
  205. }
  206. public void exitButton() {
  207. System.exit(0);
  208. }
  209. public static void leerButton() {
  210. text1.setText(null);
  211. text2.setText(null);
  212. budgetDispaly.setText(null);
  213. expensesDisplay.setText(null);
  214. balanceDisplay.setText(null);
  215. ((DefaultTableModel)myTable.getModel()).setRowCount(0);
  216. }
  217. public static String setBudgetView() {
  218. String result = budget + " �";
  219. return result;
  220. }
  221. public static String setExpensesView() {
  222. String result = expenses - budget + " �";
  223. return result;
  224. }
  225. public static String setBalanceView() {
  226. String result = balance + " �";
  227. return result;
  228. }
  229. }