Untitled
unknown
java
5 months ago
14 kB
4
Indexable
/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template */ package itpf.cs; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.border.TitledBorder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; public class ITPFCS { private static JFrame frame; private static JTextField maintenanceCostField; private static DefaultListModel<String> historyListModel; public static void main(String[] args) { showStartMenu(); } private static void showStartMenu() { // Create the frame for the Start Menu frame = new JFrame("CALAMANSI FARM SYSTEM"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); // Increased the size of the frame frame.setLayout(new BorderLayout()); // Welcome panel JPanel welcomePanel = new JPanel(); welcomePanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 0, 10, 0); JLabel welcomeLabel = new JLabel("Welcome", SwingConstants.CENTER); welcomeLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(welcomeLabel, gbc); gbc.gridy++; JLabel toLabel = new JLabel("to", SwingConstants.CENTER); toLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(toLabel, gbc); gbc.gridy++; JLabel systemLabel = new JLabel("Calamansi Farm System", SwingConstants.CENTER); systemLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(systemLabel, gbc); frame.add(welcomePanel, BorderLayout.CENTER); // Main Menu Panel JPanel mainMenuPanel = new JPanel(); JButton startButton = new JButton("Start"); JButton exitButton = new JButton("Exit"); startButton.setPreferredSize(new Dimension(250, 50)); exitButton.setPreferredSize(new Dimension(250, 50)); mainMenuPanel.add(startButton); mainMenuPanel.add(exitButton); frame.add(mainMenuPanel, BorderLayout.SOUTH); // Start button action startButton.addActionListener(e -> showCalamansiFarm()); // Exit button action exitButton.addActionListener(e -> System.exit(0)); frame.setVisible(true); } private static void showCalamansiFarm() { frame.getContentPane().removeAll(); frame.setLayout(new BorderLayout()); // Welcome panel JPanel welcomePanel = new JPanel(); welcomePanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.insets = new Insets(10, 0, 10, 0); JLabel welcomeLabel = new JLabel("Welcome", SwingConstants.CENTER); welcomeLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(welcomeLabel, gbc); gbc.gridy++; JLabel toLabel = new JLabel("to", SwingConstants.CENTER); toLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(toLabel, gbc); gbc.gridy++; JLabel systemLabel = new JLabel("Calamansi Farm System", SwingConstants.CENTER); systemLabel.setFont(new Font("Arial", Font.BOLD, 20)); welcomePanel.add(systemLabel, gbc); frame.add(welcomePanel, BorderLayout.CENTER); // Main Menu Panel JPanel mainMenuPanel = new JPanel(); JButton exitButton = new JButton("Exit"); exitButton.setPreferredSize(new Dimension(250, 50)); mainMenuPanel.add(exitButton); frame.add(mainMenuPanel, BorderLayout.SOUTH); // Tabbed Pane for Maintenance, Harvest, and History sections JTabbedPane tabbedPane = new JTabbedPane(); frame.add(tabbedPane, BorderLayout.CENTER); // Centering the panels GridBagConstraints gbcTab = new GridBagConstraints(); gbcTab.gridx = 0; gbcTab.gridy = 0; gbcTab.weightx = 1; gbcTab.weighty = 1; gbcTab.anchor = GridBagConstraints.CENTER; gbcTab.fill = GridBagConstraints.NONE; // Maintenance Tab JPanel maintenanceContainer = createSectionContainer("Maintenance", new Color(255, 240, 220)); JPanel maintenancePanel = createMaintenancePanel(); maintenanceContainer.setPreferredSize(new Dimension(600, 400)); // Increased the size of the container maintenanceContainer.add(maintenancePanel); JPanel maintenanceWrapper = new JPanel(new GridBagLayout()); maintenanceWrapper.add(maintenanceContainer, gbcTab); tabbedPane.addTab("MAINTENANCE", maintenanceWrapper); // Harvest Tab JPanel harvestContainer = createSectionContainer("Harvest", new Color(220, 255, 220)); JPanel harvestPanel = createHarvestPanel(); harvestContainer.setPreferredSize(new Dimension(600, 400)); // Increased the size of the container harvestContainer.add(harvestPanel); JPanel harvestWrapper = new JPanel(new GridBagLayout()); harvestWrapper.add(harvestContainer, gbcTab); tabbedPane.addTab("HARVEST", harvestWrapper); // History Tab JPanel historyContainer = createSectionContainer("History", new Color(220, 220, 255)); JPanel historyPanel = createHistoryPanel(); historyContainer.setPreferredSize(new Dimension(600, 400)); // Increased the size of the container historyContainer.add(historyPanel); JPanel historyWrapper = new JPanel(new GridBagLayout()); historyWrapper.add(historyContainer, gbcTab); tabbedPane.addTab("HISTORY", historyWrapper); // Exit button action exitButton.addActionListener(e -> System.exit(0)); frame.revalidate(); frame.repaint(); } private static JPanel createMaintenancePanel() { JPanel maintenancePanel = new JPanel(); maintenancePanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.anchor = GridBagConstraints.LINE_END; gbc.insets = new Insets(5, 5, 5, 5); // Fields and labels String[] labels = {"Date:", "Irrigation Cost:", "Fertilizer:", "Pesticide:", "Gas:", "Grass Cutting:"}; JTextField[] fields = {new JTextField(10), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6)}; for (int i = 0; i < labels.length; i++) { JLabel label = new JLabel(labels[i]); label.setFont(new Font("Arial", Font.PLAIN, 16)); fields[i].setFont(new Font("Arial", Font.PLAIN, 16)); gbc.gridx = 0; gbc.gridy = i; maintenancePanel.add(createFieldPanel(label, fields[i]), gbc); } // Add Compute and Reset buttons JPanel buttonPanel = new JPanel(); JButton computeButton = new JButton("Compute"); JButton resetButton = new JButton("Reset"); buttonPanel.add(computeButton); buttonPanel.add(resetButton); gbc.gridy++; gbc.anchor = GridBagConstraints.CENTER; maintenancePanel.add(buttonPanel, gbc); // Compute button action computeButton.addActionListener(e -> { String date = fields[0].getText(); double irrigationCost = Double.parseDouble(fields[1].getText()); double fertilizerCost = Double.parseDouble(fields[2].getText()); double pesticideCost = Double.parseDouble(fields[3].getText()); double gasCost = Double.parseDouble(fields[4].getText()); double grassCuttingCost = Double.parseDouble(fields[5].getText()); double totalMaintenanceCost = irrigationCost + fertilizerCost + pesticideCost + gasCost + grassCuttingCost; maintenanceCostField.setText(String.valueOf(totalMaintenanceCost)); String receipt = "Maintenance Receipt:\n" + "---------------------------------\n" + "Date: " + date + "\n" + "Irrigation Cost: " + irrigationCost + "\n" + "Fertilizer Cost: " + fertilizerCost + "\n" + "Pesticide Cost: " + pesticideCost + "\n" + "Gas Cost: " + gasCost + "\n" + "Grass Cutting Cost: " + grassCuttingCost + "\n" + "---------------------------------\n" + "Total Maintenance Cost: " + totalMaintenanceCost + "\n" + "---------------------------------"; JOptionPane.showMessageDialog(null, receipt); // Save to history historyListModel.addElement("Maintenance - Date: " + date + ", Total Maintenance Cost: " + totalMaintenanceCost); }); // Reset button action resetButton.addActionListener(e -> { for (JTextField field : fields) { field.setText(""); } }); return maintenancePanel; } private static JPanel createHarvestPanel() { JPanel harvestPanel = new JPanel(); harvestPanel.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.anchor = GridBagConstraints.LINE_END; gbc.insets = new Insets(5, 5, 5, 5); // Fields and labels String[] labels = {"Date:", "Price of Good Calamansi:", "Price of Reject Calamansi:", "Quantity of Good Calamansi:", "Quantity of Reject Calamansi:", "Salary of Farmers:", "Maintenance Cost:"}; JTextField[] fields = {new JTextField(10), new JTextField(8), new JTextField(8), new JTextField(8), new JTextField(8), new JTextField(8), maintenanceCostField = new JTextField(8)}; for (int i = 0; i < labels.length; i++) { JLabel label = new JLabel(labels[i]); label.setFont(new Font("Arial", Font.PLAIN, 16)); fields[i].setFont(new Font("Arial", Font.PLAIN, 16)); gbc.gridx = 0; gbc.gridy = i; harvestPanel.add(createFieldPanel(label, fields[i]), gbc); } // Add Compute and Reset buttons JPanel buttonPanel = new JPanel(); JButton computeButton = new JButton("Compute"); JButton resetButton = new JButton("Reset"); buttonPanel.add(computeButton); buttonPanel.add(resetButton); gbc.gridy++; gbc.anchor = GridBagConstraints.CENTER; harvestPanel.add(buttonPanel, gbc); // Compute button action computeButton.addActionListener(e -> { String date = fields[0].getText(); double priceGood = Double.parseDouble(fields[1].getText()); double priceReject = Double.parseDouble(fields[2].getText()); double qtyGood = Double.parseDouble(fields[3].getText()); double qtyReject = Double.parseDouble(fields[4].getText()); double salary = Double.parseDouble(fields[5].getText()); double maintenanceCost = Double.parseDouble(fields[6].getText()); double totalPriceGood = priceGood * qtyGood; double totalPriceReject = priceReject * qtyReject; double totalHarvestValue = totalPriceGood + totalPriceReject - salary - maintenanceCost; String receipt = "Harvest Receipt:\n" + "---------------------------------\n" + "Date: " + date + "\n" + "Total Price of Good Calamansi: " + totalPriceGood + "\n" + "Total Price of Reject Calamansi: " + totalPriceReject + "\n" + "Total Salary of Farmers: " + salary + "\n" + "Maintenance Cost: " + maintenanceCost + "\n" + "---------------------------------\n" + "Total Harvest Value (after salary and maintenance deduction): " + totalHarvestValue + "\n" + "---------------------------------"; JOptionPane.showMessageDialog(null, receipt); // Save to history historyListModel.addElement("Harvest - Date: " + date + ", Total Harvest Value: " + totalHarvestValue); }); // Reset button action resetButton.addActionListener(e -> { for (JTextField field : fields) { field.setText(""); } }); return harvestPanel; } private static JPanel createHistoryPanel() { JPanel historyPanel = new JPanel(new BorderLayout()); historyListModel = new DefaultListModel<>(); JList<String> historyList = new JList<>(historyListModel); JScrollPane scrollPane = new JScrollPane(historyList); historyPanel.add(scrollPane, BorderLayout.CENTER); return historyPanel; } private static JPanel createFieldPanel(JLabel label, JTextField field) { JPanel panel = new JPanel(); panel.setLayout(new FlowLayout(FlowLayout.LEFT)); panel.add(label); panel.add(field); return panel; } private static JPanel createSectionContainer(String title, Color color) { JPanel container = new JPanel(); container.setLayout(new BorderLayout()); container.setBorder(BorderFactory.createTitledBorder( BorderFactory.createLineBorder(Color.BLACK), title, TitledBorder.LEFT, TitledBorder.TOP)); container.setBackground(color); return container; } }
Editor is loading...
Leave a Comment