Top Java Projects you need to know in 2021

Swatee Chand
Sep 30, 2019 · 7 min read
Java Projects — Edureka

The demand for Java is never-ending and many top MNCs are looking for Java Developers. These days, having hands-on experience in java and trying out projects in java would be an added weight to your resume. In this article, we shall try out the top 5 projects that you need to know in 2021.

Online Examination

This particular project is designed to provide a user interface that asks multiple-choice questions and takes inputs from users as the answers and then, finally evaluates all the questions and gives back the output as the individuals result.

package Edureka;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class OnlineTest extends JFrame implements ActionListener {
JLabel l;
JRadioButton jb[] = new JRadioButton[5];
JButton b1, b2;
ButtonGroup bg;
int count = 0, current = 0, x = 1, y = 1, now = 0;
int m[] = new int[10];

OnlineTest(String s) {
super(s);
l = new JLabel();
add(l);
bg = new ButtonGroup();
for (int i = 0; i < 5; i++) {
jb[i] = new JRadioButton();
add(jb[i]);
bg.add(jb[i]);
}
b1 = new JButton("Next");
b2 = new JButton("Bookmark");
b1.addActionListener(this);
b2.addActionListener(this);
add(b1);
add(b2);
set();
l.setBounds(30, 40, 450, 20);
jb[0].setBounds(50, 80, 100, 20);
jb[1].setBounds(50, 110, 100, 20);
jb[2].setBounds(50, 140, 100, 20);
jb[3].setBounds(50, 170, 100, 20);
b1.setBounds(100, 240, 100, 30);
b2.setBounds(270, 240, 100, 30);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
setLocation(250, 100);
setVisible(true);
setSize(600, 350);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
if (check())
count = count + 1;
current++;
set();
if (current == 9) {
b1.setEnabled(false);
b2.setText("Result");
}
}
if (e.getActionCommand().equals("Bookmark")) {
JButton bk = new JButton("Bookmark" + x);
bk.setBounds(480, 20 + 30 * x, 100, 30);
add(bk);
bk.addActionListener(this);
m[x] = current;
x++;
current++;
set();
if (current == 9)
b2.setText("Result");
setVisible(false);
setVisible(true);
}
for (int i = 0, y = 1; i < x; i++, y++) {
if (e.getActionCommand().equals("Bookmark" + y)) {
if (check())
count = count + 1;
now = current;
current = m[y];
set();
((JButton) e.getSource()).setEnabled(false);
current = now;
}
}

if (e.getActionCommand().equals("Result")) {
if (check())
count = count + 1;
current++;
JOptionPane.showMessageDialog(this, "correct ans=" + count);
System.exit(0);
}
}
void set() {
jb[4].setSelected(true);
if (current == 0) {
l.setText("Que1: Which one among these is not a primitive datatype?");
jb[0].setText("int");
jb[1].setText("Float");
jb[2].setText("boolean");
jb[3].setText("char");
}
if (current == 1) {
l.setText("Que2: Which class is available to all the class automatically?");
jb[0].setText("Swing");
jb[1].setText("Applet");
jb[2].setText("Object");
jb[3].setText("ActionEvent");
}
if (current == 2) {
l.setText("Que3: Which package is directly available to our class without importing it?");
jb[0].setText("swing");
jb[1].setText("applet");
jb[2].setText("net");
jb[3].setText("lang");
}
if (current == 3) {
l.setText("Que4: String class is defined in which package?");
jb[0].setText("lang");
jb[1].setText("Swing");
jb[2].setText("Applet");
jb[3].setText("awt");
}
if (current == 4) {
l.setText("Que5: Which institute is best for java coaching?");
jb[0].setText("Utek");
jb[1].setText("Aptech");
jb[2].setText("SSS IT");
jb[3].setText("jtek");
}
if (current == 5) {
l.setText("Que6: Which one among these is not a keyword?");
jb[0].setText("class");
jb[1].setText("int");
jb[2].setText("get");
jb[3].setText("if");
}
if (current == 6) {
l.setText("Que7: Which one among these is not a class? ");
jb[0].setText("Swing");
jb[1].setText("Actionperformed");
jb[2].setText("ActionEvent");
jb[3].setText("Button");
}
if (current == 7) {
l.setText("Que8: which one among these is not a function of Object class?");
jb[0].setText("toString");
jb[1].setText("finalize");
jb[2].setText("equals");
jb[3].setText("getDocumentBase");
}
if (current == 8) {
l.setText("Que9: which function is not present in Applet class?");
jb[0].setText("init");
jb[1].setText("main");
jb[2].setText("start");
jb[3].setText("destroy");
}
if (current == 9) {
l.setText("Que10: Which one among these is not a valid component?");
jb[0].setText("JButton");
jb[1].setText("JList");
jb[2].setText("JButtonGroup");
jb[3].setText("JTextArea");
}
l.setBounds(30, 40, 450, 20);
for (int i = 0, j = 0; i <= 90; i += 30, j++)
jb[j].setBounds(50, 80 + i, 200, 20);
}

boolean check() {
if (current == 0)
return (jb[1].isSelected());
if (current == 1)
return (jb[2].isSelected());
if (current == 2)
return (jb[3].isSelected());
if (current == 3)
return (jb[0].isSelected());
if (current == 4)
return (jb[2].isSelected());
if (current == 5)
return (jb[2].isSelected());
if (current == 6)
return (jb[1].isSelected());
if (current == 7)
return (jb[3].isSelected());
if (current == 8)
return (jb[1].isSelected());
if (current == 9)
return (jb[2].isSelected());
return false;
}

public static void main(String s[]) {
new OnlineTest("Online Test Of Java");
}
}

Output

//Final Output after answering all questions

The next project is the Group Conversation.

Group Conversation

This project is designed to provide a group conversation amongst multiple terminals. the code for the same is as follows. the users must take care of the port numbers and IP addresses. The code for the same is as follows.

package groupchat;

import java.net.*;
import java.io.*;
import java.util.*;

public class GroupConversation {
private static final String TERMINATE = "Exit";
static String name;
static volatile boolean finished = false;
public static void main(String[] args) {
if (args.length != 2)
System.out.println("Two arguments required: <multicast-host> <port-number>");
else {
try {
InetAddress group = InetAddress.getByName(args[0]);
int port = Integer.parseInt(args[1]);
Scanner sc = new Scanner(System.in);
System.out.print("Enter your name: ");
name = sc.nextLine();
MulticastSocket socket = new MulticastSocket(port);
socket.setTimeToLive(0);
socket.joinGroup(group);
Thread t = new Thread(new ReadThread(socket, group, port));
t.start();
System.out.println("Start typing messages...n");
while (true) {
String message;
message = sc.nextLine();
if (message.equalsIgnoreCase(GroupConversation.TERMINATE)) {
finished = true;
socket.leaveGroup(group);
socket.close();
break;
}
message = name + ": " + message;
byte[] buffer = message.getBytes();
DatagramPacket datagram = new DatagramPacket(buffer, buffer.length, group, port);
socket.send(datagram);
}
}
catch (SocketException se) {
System.out.println("Error creating socket");
se.printStackTrace();
}
catch (IOException ie) {
System.out.println("Error reading/writing from/to socket");
ie.printStackTrace();
}
}
}
}

class ReadThread implements Runnable {
private MulticastSocket socket;
private InetAddress group;
private int port;
private static final int MAX_LEN = 1000;
ReadThread(MulticastSocket socket, InetAddress group, int port) {
this.socket = socket;
this.group = group;
this.port = port;
}
@Override
public void run() {
while (!GroupConversation.finished) {
byte[] buffer = new byte[ReadThread.MAX_LEN];
DatagramPacket datagram = new DatagramPacket(buffer, buffer.length, group, port);
String message;
try {
socket.receive(datagram);
message = new String(buffer, 0, datagram.getLength(), "UTF-8");
if (!message.startsWith(GroupConversation.name))
System.out.println(message);
}
catch (IOException e) {
System.out.println("Socket closed!");
}
}
}
}

//Output

The next project is the OTP Generator

OTP Generator

This project is designed to generate OTP in the realtime using the random function. the code for the same is as follows.

package otp;
import java.util.*;

public class Edureka {
static char[] OTP(int len) {
System.out.println("Generating OTP using random() : ");
System.out.print("Your OTP is : ");
String numbers = "0123456789";
Random rndm_method = new Random();
char[] otp = new char[len];
for (int i = 0; i < len; i++) {
otp[i] = numbers.charAt(rndm_method.nextInt(numbers.length()));
}
return otp;
}
public static void main(String[] args) {
int length = 4;
System.out.println(OTP(length));
}
}

//Output

Generating OTP using random() :
Your OTP is : 7892

The next project is the Password Generator

Password Generator

This project is designed to generate Password in the realtime using the random function. the code for the same is as follows.

package OTP_Generator;

import java.util.*;
public class Edureka {
public static void main(String[] args) {
int length = 10;
System.out.println(geek_Password(length));
}
static char[] geek_Password(int len) {
System.out.println("Generating password using random() : ");
System.out.print("Your new password is : ");
String Capital_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String Small_chars = "abcdefghijklmnopqrstuvwxyz";
String numbers = "0123456789";
String symbols = "!@#$%^&*_=+-/.?<>)";
String values = Capital_chars + Small_chars + numbers + symbols;
Random rndm_method = new Random();
char[] password = new char[len];
for (int i = 0; i < len; i++) {
password[i] = values.charAt(rndm_method.nextInt(values.length()));
}
return password;
}
}

//Output

Generating password using random() :
Your new password is : /vZr_QsZNm

With this, we come to an end of this Java Projects Tutorial. I hope you have understood these Java Projects and their implementation.

If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, DevOps, Ethical Hacking, then you can refer to Edureka’s official site.

Do look out for other articles in this series which will explain the various other aspects of Java.

1. Object Oriented Programming

2. Inheritance in Java

3. Polymorphism in Java

4. Abstraction in Java

5. Java String

6. Java Array

7. Java Collections

8. Java Threads

9. Introduction to Java Servlets

10. Servlet and JSP Tutorial

11. Exception Handling in Java

12. Advanced Java Tutorial

13. Java Interview Questions

14. Java Programs

15. Kotlin vs Java

16. Dependency Injection Using Spring Boot

17. Comparable in Java

18. Top 10 Java frameworks

19. Java Reflection API

20. Top 30 Patterns in Java

21. Core Java Cheat Sheet

22. Socket Programming In Java

23. Java OOP Cheat Sheet

24. Annotations in Java

25. Library Management System Project in Java

26. Trees in Java

27. Machine Learning in Java

28. Top Data Structures & Algorithms in Java

29. Java Developer Skills

30. Top 55 Servlet Interview Questions

31. Java Tutorial

32. Java Strings Cheat Sheet

33. Nested Class in Java

34. Java Collections Interview Questions and Answers

35. How to Handle Deadlock in Java?

36. Top 50 Java Collections Interview Questions You Need to Know

37. What is the concept of String Pool in Java?

38. What is the difference between C, C++, and Java?

39. Palindrome in Java- How to check a number or string?

40. Top MVC Interview Questions and Answers You Need to Know

41. Top 10 Applications of Java Programming Language

42. Deadlock in Java

43. Square and Square Root in Java

44. Typecasting in Java

45. Operators in Java and its Types

46. Destructor in Java

47. Binary Search in Java

48. MVC Architecture in Java

49. Hibernate Interview Questions And Answers

Originally published at https://www.edureka.co on September 30, 2019.

Edureka

There are many e-learning platforms on the internet & then there’s us. We are not the biggest, but we are the fastest growing. We have the highest course completion rate in the industry. We provide live, instructor-led online programs in trending tech with 24x7 lifetime support.

Swatee Chand

Written by

Tech Blogger and Enthusiast

Edureka

There are many e-learning platforms on the internet & then there’s us. We are not the biggest, but we are the fastest growing. We have the highest course completion rate in the industry. We provide live, instructor-led online programs in trending tech with 24x7 lifetime support.