Recipe Management System In Java | Java Project

by | Dec 1, 2022 | Coding Projects, Java | 0 comments

What We Do

Software & SaaS Development

Delivered 100+ SaaS Solutions. An expert team capable of converting your ideas into reality.

Custom Mobile Apps Design & Development

Fast Development, Fast Deployment. We develop native apps compatible with both Android & iOS.

AI & Augmented Reality

Agentic Workflows, Process Automation and AI Integration. Our team will help you to deliver AI Apps within 4 weeks.

Introduction of the Project

In this Java tutorial, we will write the source code for a Recipe Management System In Java which creates a management system for different recipes for food items. To make this a functional system, we will use an SQL database to store information regarding Dish name, Type, Ingredients & Recipe.

 

Objectives

  • To implement the tables that contain the recipe’s information and attach the functionality of adding & updating information to the database.
  • To implement the Swing module to create a Graphic user interface involving some interactive graphics.

Requirements

Source Code

package com.company;

public class Main {

public static void main(String[] args) {

new Recipe();

}

}

package com.company;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.sql.*;

import java.util.Vector;

public class Recipe {

private JTextField idData;

private JTextField nameData;

private JTextField ingriData;

private JTable table1;

private JButton ADDRECORDButton;

private JButton UPDATERECORDButton;

private JTextArea recipeData;

private JComboBox typeData;

private JPanel recipePanel;

JFrame recipe = new JFrame();

public Recipe(){

recipe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

recipe.setContentPane(recipePanel);

recipe.pack();

recipe.setLocationRelativeTo(null);

recipe.setSize(600,500);

recipe.setVisible(true);

tableData();

ADDRECORDButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if(idData.getText().equals("")|| nameData.getText().equals("")||recipeData.getText().equals("")|| ingriData.getText().equals("")){

JOptionPane.showMessageDialog(null,"Please Fill All Fields to add Record.");

}else{

try {

String sql = "insert into recipe"+"(ID,NAME,TYPE,INGREDIENTS,RECIPE)"+"values (?,?,?,?,?)";

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

PreparedStatement statement = connection.prepareStatement(sql);

//

statement.setInt(1,Integer.parseInt(idData.getText()));

statement.setString(2, nameData.getText());

statement.setString(3, ""+typeData.getSelectedItem());

statement.setString(4,ingriData.getText());

statement.setString(5,recipeData.getText());

statement.executeUpdate();

JOptionPane.showMessageDialog(null,"ITEM ADDED SUCCESSFULLY");

idData.setText("");

nameData.setText("");

recipeData.setText("");

ingriData.setText("");

}catch (Exception ex){

JOptionPane.showMessageDialog(null,ex.getMessage());

}

tableData();

}

}

});

UPDATERECORDButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

try{

String sql = "UPDATE recipe " +

"SET NAME = '"+ nameData.getText()+"',TYPE='"+ typeData.getSelectedItem()+

"',INGREDIENTS='"+ingriData.getText()+"',RECIPE='"+recipeData.getText()+"'" +

" WHERE ID="+Integer.parseInt(idData.getText());

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

PreparedStatement statement = connection.prepareStatement(sql);

statement.executeUpdate();

JOptionPane.showMessageDialog(null,"Updated successfully");

}catch (Exception e2){

System.out.println(e2);

}

tableData();

}

});

table1.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

DefaultTableModel dm = (DefaultTableModel)table1.getModel();

int selectedRow = table1.getSelectedRow();

idData.setText(dm.getValueAt(selectedRow,0).toString());

nameData.setText(dm.getValueAt(selectedRow,1).toString());

recipeData.setText(dm.getValueAt(selectedRow,4).toString());

ingriData.setText(dm.getValueAt(selectedRow,3).toString());

}

});

}

public void tableData() {

try{

String a= "Select* from recipe";

Class.forName("com.mysql.cj.jdbc.Driver");

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/intern","root","root");

Statement statement = connection.createStatement();

ResultSet rs = statement.executeQuery(a);

// table1.setModel(new DefaultTableModel(null, new String[]{"ID", "ITEM NAME", "QUANTITY", "PRICE"}));

table1.setModel(buildTableModel(rs));

}catch (Exception ex1){

JOptionPane.showMessageDialog(null,ex1.getMessage());

}

}

public static DefaultTableModel buildTableModel(ResultSet rs)

throws SQLException {

ResultSetMetaData metaData = rs.getMetaData();

// names of columns

Vector<String> columnNames = new Vector<String>();

int columnCount = metaData.getColumnCount();

for (int column = 1; column <= columnCount; column++) {

columnNames.add(metaData.getColumnName(column));

}

// data of the table

Vector<Vector<Object>> data = new Vector<Vector<Object>>();

while (rs.next()) {

Vector<Object> vector = new Vector<Object>();

for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {

vector.add(rs.getObject(columnIndex));

}

data.add(vector);

}

return new DefaultTableModel(data, columnNames);

}

}

 

Explanation of the Code

To better understand the working of this source code, we have divided the program into two sections:

Let us look at the GUI first:

1. It consists of 4 textfields and a comboBox that require recipe-related data to be added to the database.

2. Then, we add an “ADD” button, which inserts data into the database from the textfields.

3. It consists of an Update Button that, as the name suggests, updates the database.

Moving to the retrieval, we will apply the following:

1. Build a connection first with the database using the Connection object.

2. Inject the query that stores table data in ResultSet.

3. Finally, send data to Jtable().

4. Addition & Updating the data require the injection of a query that manipulates the data & finally, using the method tableData() to display data into Jtable().

Output

Main Interface

Recipe Management System In Java

Conclusion

This tutorial was to create a project Recipe Management System In Java that helps to manage recipes of various dishes with the Swing module used for the user interface. This is a very efficient code to create a system that stores & gets access to the recipes, so a person can easily use this application to make delicious food!

 

More Java Projects>>>

Get Started

Let’s Build The Future Together

Products

API

Services

Design

Consultation

Development

Copyright © 2026 RUDE LABS. All Rights Reserved.