From 6b9395d29e19d64e5cd70cb002fd1d5861c66af5 Mon Sep 17 00:00:00 2001 From: Himadri Date: Wed, 30 Jul 2025 23:58:01 +0530 Subject: [PATCH] Added PhoneDirectoryGUI.java with GUI implementation --- .vscode/settings.json | 3 + Java Code/.project | 11 ++ Java Code/src/PhoneDirectoryGUI$Contact.class | Bin 0 -> 1207 bytes Java Code/src/PhoneDirectoryGUI.class | Bin 0 -> 6350 bytes Java Code/src/PhoneDirectoryGUI.java | 128 ++++++++++++++++++ JavaComplete/.project | 11 ++ JavaComplete/bin/Animal.class | Bin 7261 -> 7257 bytes JavaLesson41/.project | 11 ++ 8 files changed, 164 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 Java Code/src/PhoneDirectoryGUI$Contact.class create mode 100644 Java Code/src/PhoneDirectoryGUI.class create mode 100644 Java Code/src/PhoneDirectoryGUI.java diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c995aa5 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.debug.settings.onBuildFailureProceed": true +} \ No newline at end of file diff --git a/Java Code/.project b/Java Code/.project index 5a05115..bec1bdc 100644 --- a/Java Code/.project +++ b/Java Code/.project @@ -14,4 +14,15 @@ org.eclipse.jdt.core.javanature + + + 1753897780379 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/Java Code/src/PhoneDirectoryGUI$Contact.class b/Java Code/src/PhoneDirectoryGUI$Contact.class new file mode 100644 index 0000000000000000000000000000000000000000..e4fb05e9d2986ce38a3f7c67db0cd638887c2989 GIT binary patch literal 1207 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 contacts = new ArrayList<>(); + static JTextArea outputArea; + + public static void main(String[] args) { + JFrame frame = new JFrame("Phone Directory"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(500, 600); + + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(0, 2, 5, 5)); + + JTextField tfFirst = new JTextField(); + JTextField tfLast = new JTextField(); + JTextField tfEmail = new JTextField(); + JTextField tfPhone = new JTextField(); + JTextField tfJob = new JTextField(); + JTextField tfSearch = new JTextField(); + + panel.add(new JLabel("First Name:")); + panel.add(tfFirst); + panel.add(new JLabel("Last Name:")); + panel.add(tfLast); + panel.add(new JLabel("Email:")); + panel.add(tfEmail); + panel.add(new JLabel("Phone:")); + panel.add(tfPhone); + panel.add(new JLabel("Job Title:")); + panel.add(tfJob); + panel.add(new JLabel("Search (Name/Phone):")); + panel.add(tfSearch); + + JButton addBtn = new JButton("Add Contact"); + JButton showBtn = new JButton("Show All"); + JButton deleteBtn = new JButton("Delete"); + JButton updateBtn = new JButton("Update"); + JButton searchBtn = new JButton("Search"); + + panel.add(addBtn); + panel.add(showBtn); + panel.add(deleteBtn); + panel.add(updateBtn); + panel.add(searchBtn); + + outputArea = new JTextArea(10, 40); + JScrollPane scrollPane = new JScrollPane(outputArea); + + addBtn.addActionListener(e -> { + Contact c = new Contact(tfFirst.getText(), tfLast.getText(), tfEmail.getText(), tfPhone.getText(), + tfJob.getText()); + contacts.add(c); + outputArea.setText("Added: " + c + "\n"); + clearFields(tfFirst, tfLast, tfEmail, tfPhone, tfJob); + }); + + showBtn.addActionListener(e -> { + StringBuilder sb = new StringBuilder("All Contacts:\n"); + for (Contact c : contacts) + sb.append(c).append("\n"); + outputArea.setText(sb.toString()); + }); + + deleteBtn.addActionListener(e -> { + String key = tfSearch.getText(); + contacts.removeIf(c -> c.firstName.equalsIgnoreCase(key) || c.phone.equals(key)); + outputArea.setText("Deleted contacts with name or phone: " + key); + }); + + searchBtn.addActionListener(e -> { + String key = tfSearch.getText(); + StringBuilder sb = new StringBuilder("Search Results:\n"); + for (Contact c : contacts) { + if (c.firstName.equalsIgnoreCase(key) || c.phone.equals(key)) + sb.append(c).append("\n"); + } + outputArea.setText(sb.toString()); + }); + + updateBtn.addActionListener(e -> { + String key = tfSearch.getText(); + for (Contact c : contacts) { + if (c.firstName.equalsIgnoreCase(key) || c.phone.equals(key)) { + c.firstName = tfFirst.getText(); + c.lastName = tfLast.getText(); + c.email = tfEmail.getText(); + c.phone = tfPhone.getText(); + c.job = tfJob.getText(); + outputArea.setText("Updated: " + c + "\n"); + break; + } + } + }); + + frame.getContentPane().add(panel, BorderLayout.NORTH); + frame.getContentPane().add(scrollPane, BorderLayout.CENTER); + frame.setVisible(true); + } + + static void clearFields(JTextField... fields) { + for (JTextField f : fields) + f.setText(""); + } +} diff --git a/JavaComplete/.project b/JavaComplete/.project index 0e17203..d3b55d0 100644 --- a/JavaComplete/.project +++ b/JavaComplete/.project @@ -14,4 +14,15 @@ org.eclipse.jdt.core.javanature + + + 1753897780398 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/JavaComplete/bin/Animal.class b/JavaComplete/bin/Animal.class index de0dd49e3c280c2f1e5c1fed299326282055e976..4de6ea5c4dfd20bea4142cdf1e901f62c09f9cbf 100644 GIT binary patch delta 26 icmca>anoW$xFqBE%@LAU7@6}Jq$lf38%|D<{s{n&dkNhD delta 28 kcmcaorg.eclipse.jdt.core.javanature org.eclipse.wst.jsdt.core.jsNature + + + 1753897780405 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + +