diff --git a/build/classes/mycontact/DefaulTableModel.class b/build/classes/mycontact/DefaulTableModel.class
new file mode 100644
index 0000000..f61040b
Binary files /dev/null and b/build/classes/mycontact/DefaulTableModel.class differ
diff --git a/build/classes/mycontact/MYcontact$1.class b/build/classes/mycontact/MYcontact$1.class
new file mode 100644
index 0000000..cd4222c
Binary files /dev/null and b/build/classes/mycontact/MYcontact$1.class differ
diff --git a/build/classes/mycontact/MYcontact$2.class b/build/classes/mycontact/MYcontact$2.class
new file mode 100644
index 0000000..b92a986
Binary files /dev/null and b/build/classes/mycontact/MYcontact$2.class differ
diff --git a/build/classes/mycontact/MYcontact$3.class b/build/classes/mycontact/MYcontact$3.class
new file mode 100644
index 0000000..bb2f704
Binary files /dev/null and b/build/classes/mycontact/MYcontact$3.class differ
diff --git a/build/classes/mycontact/MYcontact$4.class b/build/classes/mycontact/MYcontact$4.class
new file mode 100644
index 0000000..edf5611
Binary files /dev/null and b/build/classes/mycontact/MYcontact$4.class differ
diff --git a/build/classes/mycontact/MYcontact$5.class b/build/classes/mycontact/MYcontact$5.class
new file mode 100644
index 0000000..eaa5048
Binary files /dev/null and b/build/classes/mycontact/MYcontact$5.class differ
diff --git a/build/classes/mycontact/MYcontact$6.class b/build/classes/mycontact/MYcontact$6.class
new file mode 100644
index 0000000..69c0547
Binary files /dev/null and b/build/classes/mycontact/MYcontact$6.class differ
diff --git a/build/classes/mycontact/MYcontact$7.class b/build/classes/mycontact/MYcontact$7.class
new file mode 100644
index 0000000..e63b765
Binary files /dev/null and b/build/classes/mycontact/MYcontact$7.class differ
diff --git a/build/classes/mycontact/MYcontact$8.class b/build/classes/mycontact/MYcontact$8.class
new file mode 100644
index 0000000..5c6248f
Binary files /dev/null and b/build/classes/mycontact/MYcontact$8.class differ
diff --git a/build/classes/mycontact/MYcontact.class b/build/classes/mycontact/MYcontact.class
new file mode 100644
index 0000000..990226a
Binary files /dev/null and b/build/classes/mycontact/MYcontact.class differ
diff --git a/build/classes/mycontact/MYcontact.form b/build/classes/mycontact/MYcontact.form
new file mode 100644
index 0000000..d5d8e49
--- /dev/null
+++ b/build/classes/mycontact/MYcontact.form
@@ -0,0 +1,379 @@
+
+
+
diff --git a/build/classes/mycontact/model.class b/build/classes/mycontact/model.class
new file mode 100644
index 0000000..35615de
Binary files /dev/null and b/build/classes/mycontact/model.class differ
diff --git a/build/classes/photos/add-friend.png b/build/classes/photos/add-friend.png
new file mode 100644
index 0000000..65af7f5
Binary files /dev/null and b/build/classes/photos/add-friend.png differ
diff --git a/build/classes/photos/clear.png b/build/classes/photos/clear.png
new file mode 100644
index 0000000..4a8b72e
Binary files /dev/null and b/build/classes/photos/clear.png differ
diff --git a/build/classes/photos/delete.png b/build/classes/photos/delete.png
new file mode 100644
index 0000000..2993cff
Binary files /dev/null and b/build/classes/photos/delete.png differ
diff --git a/build/classes/photos/friends.png b/build/classes/photos/friends.png
new file mode 100644
index 0000000..c7ba02b
Binary files /dev/null and b/build/classes/photos/friends.png differ
diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml
new file mode 100644
index 0000000..3cd1147
--- /dev/null
+++ b/nbproject/build-impl.xml
@@ -0,0 +1,1420 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set src.dir
+ Must set test.src.dir
+ Must set build.dir
+ Must set dist.dir
+ Must set build.classes.dir
+ Must set dist.javadoc.dir
+ Must set build.test.classes.dir
+ Must set build.test.results.dir
+ Must set build.classes.excludes
+ Must set dist.jar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No tests executed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must set JVM to use for profiling in profiler.info.jvm
+ Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ To run this application from the command line without Ant, try:
+
+ java -jar "${dist.jar.resolved}"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must select one file in the IDE or set debug.class
+
+
+
+
+ Must set fix.includes
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set profile.class
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+ This target only works when run from inside the NetBeans IDE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+
+ Must select one file in the IDE or set run.class
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set javac.includes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+
+
+
+
+ Must select some files in the IDE or set test.includes
+
+
+
+ Some tests failed; see details above.
+
+
+
+ Must select some files in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+ Some tests failed; see details above.
+
+
+
+
+ Must select one file in the IDE or set test.class
+
+
+
+ Must select one file in the IDE or set test.class
+ Must select some method in the IDE or set test.method
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+ Must select one file in the IDE or set applet.url
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
new file mode 100644
index 0000000..8419ac7
--- /dev/null
+++ b/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=c7af553b
+build.xml.script.CRC32=6ff6c4e4
+build.xml.stylesheet.CRC32=8064a381@1.80.1.48
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=c7af553b
+nbproject/build-impl.xml.script.CRC32=8de6532d
+nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48
diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties
new file mode 100644
index 0000000..f090f1f
--- /dev/null
+++ b/nbproject/private/private.properties
@@ -0,0 +1,2 @@
+compile.on.save=true
+user.properties.file=C:\\Users\\Mohamedan_Farag\\AppData\\Roaming\\NetBeans\\8.2\\build.properties
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
new file mode 100644
index 0000000..6690ddf
--- /dev/null
+++ b/nbproject/private/private.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+ file:/C:/Users/Mohamedan_Farag/Documents/NetBeansProjects/MyContacts/src/mycontact/MYcontact.java
+
+
+
diff --git a/nbproject/project.properties b/nbproject/project.properties
new file mode 100644
index 0000000..c86473d
--- /dev/null
+++ b/nbproject/project.properties
@@ -0,0 +1,74 @@
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processor.options=
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# Files in build.classes.dir which should be excluded from distribution jar
+dist.archive.excludes=
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/MyContacts.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+excludes=
+includes=**
+jar.compress=false
+javac.classpath=
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.external.vm=true
+javac.processorpath=\
+ ${javac.classpath}
+javac.source=1.8
+javac.target=1.8
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+javac.test.processorpath=\
+ ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+main.class=mycontact.MYcontact
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100644
index 0000000..26243c7
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,15 @@
+
+
+ org.netbeans.modules.java.j2seproject
+
+
+ MyContacts
+
+
+
+
+
+
+
+
+
diff --git a/photos/add-friend.png b/photos/add-friend.png
new file mode 100644
index 0000000..65af7f5
Binary files /dev/null and b/photos/add-friend.png differ
diff --git a/photos/add-user.png b/photos/add-user.png
new file mode 100644
index 0000000..ea3bfa2
Binary files /dev/null and b/photos/add-user.png differ
diff --git a/photos/card (1).png b/photos/card (1).png
new file mode 100644
index 0000000..0c75eb8
Binary files /dev/null and b/photos/card (1).png differ
diff --git a/photos/card.png b/photos/card.png
new file mode 100644
index 0000000..cad4b80
Binary files /dev/null and b/photos/card.png differ
diff --git a/photos/clear.png b/photos/clear.png
new file mode 100644
index 0000000..4a8b72e
Binary files /dev/null and b/photos/clear.png differ
diff --git a/photos/delete.png b/photos/delete.png
new file mode 100644
index 0000000..b9afa2c
Binary files /dev/null and b/photos/delete.png differ
diff --git a/photos/email (1).png b/photos/email (1).png
new file mode 100644
index 0000000..91e4ec6
Binary files /dev/null and b/photos/email (1).png differ
diff --git a/photos/email.png b/photos/email.png
new file mode 100644
index 0000000..6aeecc6
Binary files /dev/null and b/photos/email.png differ
diff --git a/photos/eraser.png b/photos/eraser.png
new file mode 100644
index 0000000..88e1da6
Binary files /dev/null and b/photos/eraser.png differ
diff --git a/photos/friends (1).png b/photos/friends (1).png
new file mode 100644
index 0000000..b1088af
Binary files /dev/null and b/photos/friends (1).png differ
diff --git a/photos/friends.png b/photos/friends.png
new file mode 100644
index 0000000..a7ae3a9
Binary files /dev/null and b/photos/friends.png differ
diff --git a/photos/home-address.png b/photos/home-address.png
new file mode 100644
index 0000000..8c70f1e
Binary files /dev/null and b/photos/home-address.png differ
diff --git a/photos/home.png b/photos/home.png
new file mode 100644
index 0000000..ea21f83
Binary files /dev/null and b/photos/home.png differ
diff --git a/photos/smartphone.png b/photos/smartphone.png
new file mode 100644
index 0000000..2574e1a
Binary files /dev/null and b/photos/smartphone.png differ
diff --git a/src/mycontact/DefaulTableModel.java b/src/mycontact/DefaulTableModel.java
new file mode 100644
index 0000000..8c0a160
--- /dev/null
+++ b/src/mycontact/DefaulTableModel.java
@@ -0,0 +1,14 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package mycontact;
+
+/**
+ *
+ * @author Mohamedan_Farag
+ */
+class DefaulTableModel {
+
+}
diff --git a/src/mycontact/MYcontact.form b/src/mycontact/MYcontact.form
new file mode 100644
index 0000000..d5d8e49
--- /dev/null
+++ b/src/mycontact/MYcontact.form
@@ -0,0 +1,379 @@
+
+
+
diff --git a/src/mycontact/MYcontact.java b/src/mycontact/MYcontact.java
new file mode 100644
index 0000000..1ab3d24
--- /dev/null
+++ b/src/mycontact/MYcontact.java
@@ -0,0 +1,415 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package mycontact;
+
+import javax.swing.table.DefaultTableModel;
+import javax.swing.JOptionPane;
+
+/**
+ *
+ * @author Mohamedan_Farag
+ */
+public class MYcontact extends javax.swing.JFrame {
+
+ /**
+ * Creates new form MYcontact
+ */
+ public MYcontact() {
+ initComponents();
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ gg = new javax.swing.JPanel();
+ jLabel2 = new javax.swing.JLabel();
+ jLabel3 = new javax.swing.JLabel();
+ jLabel4 = new javax.swing.JLabel();
+ jLabel5 = new javax.swing.JLabel();
+ txtname = new javax.swing.JTextField();
+ txtemail = new javax.swing.JTextField();
+ jTextField4 = new javax.swing.JTextField();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ jTextArea1 = new javax.swing.JTextArea();
+ jButton1 = new javax.swing.JButton();
+ javax.swing.JButton jButton2 = new javax.swing.JButton();
+ jButton3 = new javax.swing.JButton();
+ txtadress = new javax.swing.JTextField();
+ jLabel6 = new javax.swing.JLabel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ jTable1 = new javax.swing.JTable();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+
+ jPanel1.setBackground(new java.awt.Color(255, 51, 51));
+
+ jLabel1.setFont(new java.awt.Font("Tahoma", 1, 48)); // NOI18N
+ jLabel1.setForeground(new java.awt.Color(153, 0, 153));
+ jLabel1.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\friends (1).png")); // NOI18N
+ jLabel1.setText("My Contacts");
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
+ .addContainerGap(678, Short.MAX_VALUE)
+ .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 540, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(277, 277, 277))
+ );
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ gg.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
+
+ jLabel2.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
+ jLabel2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\card (1).png")); // NOI18N
+ jLabel2.setText("Name :");
+
+ jLabel3.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
+ jLabel3.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\smartphone.png")); // NOI18N
+ jLabel3.setText("Phone :");
+
+ jLabel4.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
+ jLabel4.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\email (1).png")); // NOI18N
+ jLabel4.setText("Email :");
+
+ jLabel5.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
+ jLabel5.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\home-address.png")); // NOI18N
+ jLabel5.setText("Address :");
+
+ txtname.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ txtnameActionPerformed(evt);
+ }
+ });
+
+ txtemail.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ txtemailActionPerformed(evt);
+ }
+ });
+
+ jTextField4.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jTextField4ActionPerformed(evt);
+ }
+ });
+
+ jTextArea1.setColumns(20);
+ jTextArea1.setRows(5);
+ jScrollPane1.setViewportView(jTextArea1);
+
+ jButton1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
+ jButton1.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\add-user.png")); // NOI18N
+ jButton1.setText("Add");
+ jButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton1ActionPerformed(evt);
+ }
+ });
+
+ jButton2.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
+ jButton2.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\delete.png")); // NOI18N
+ jButton2.setText("Delete");
+ jButton2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton2ActionPerformed(evt);
+ }
+ });
+
+ jButton3.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
+ jButton3.setIcon(new javax.swing.ImageIcon("C:\\Users\\Mohamedan_Farag\\Documents\\NetBeansProjects\\MyContacts\\photos\\eraser.png")); // NOI18N
+ jButton3.setText("clear");
+ jButton3.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton3ActionPerformed(evt);
+ }
+ });
+
+ txtadress.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ txtadressActionPerformed(evt);
+ }
+ });
+
+ javax.swing.GroupLayout ggLayout = new javax.swing.GroupLayout(gg);
+ gg.setLayout(ggLayout);
+ ggLayout.setHorizontalGroup(
+ ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(ggLayout.createSequentialGroup()
+ .addGroup(ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, ggLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, ggLayout.createSequentialGroup()
+ .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(txtadress, javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(txtemail)
+ .addGroup(javax.swing.GroupLayout.Alignment.LEADING, ggLayout.createSequentialGroup()
+ .addGroup(ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 206, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addComponent(txtname, javax.swing.GroupLayout.Alignment.LEADING)))
+ .addGroup(ggLayout.createSequentialGroup()
+ .addGap(165, 165, 165)
+ .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(ggLayout.createSequentialGroup()
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 455, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGap(12, 12, 12))
+ );
+ ggLayout.setVerticalGroup(
+ ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(ggLayout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, ggLayout.createSequentialGroup()
+ .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(24, 24, 24)
+ .addComponent(jLabel4)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(txtemail, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(18, 18, 18)
+ .addComponent(txtadress, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(ggLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ jLabel6.setFont(new java.awt.Font("Tahoma", 1, 36)); // NOI18N
+ jLabel6.setText("Contact");
+
+ jTable1.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+ "Name", "Phone", "Emil", "Addres"
+ }
+ ));
+ jScrollPane2.setViewportView(jTable1);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(23, 23, 23)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(gg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(18, 18, 18)
+ .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 952, javax.swing.GroupLayout.PREFERRED_SIZE)))
+ .addGap(0, 0, Short.MAX_VALUE)))
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(27, 27, 27)
+ .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabel6)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(gg, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jScrollPane2))
+ .addContainerGap())
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void txtnameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtnameActionPerformed
+ // TODO add your handling code here:
+
+ }//GEN-LAST:event_txtnameActionPerformed
+
+ private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField4ActionPerformed
+ // TODO add your handling code here:
+ String s = jTextField4.getText();
+
+ if(s.length() != 11){
+ System.out.println("Invalid phone number");
+ }
+ }//GEN-LAST:event_jTextField4ActionPerformed
+
+ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
+ // TODO add your handling code here:
+ boolean name=false; boolean phone=false; boolean email=false; boolean addres=false;
+ String s = txtname.getText();
+ String spass = jTextField4.getText();
+ String semail = txtemail.getText();
+ String sadd = txtadress.getText();
+ DefaultTableModel model;
+ if(s.length()==0){
+ JOptionPane.showMessageDialog(this,"Empty in NAME,please enter a name.","TRY",JOptionPane.ERROR_MESSAGE);
+ }
+ else name=true;
+ if(spass.length()==0){
+ JOptionPane.showMessageDialog(this,"Empty in Phone,please enter a Phone number.","TRY",JOptionPane.ERROR_MESSAGE);
+ }
+ else if(spass.length()!=11){
+ JOptionPane.showMessageDialog(this,"Invalid Phone,please enter a vaild Phone.","TRY",JOptionPane.ERROR_MESSAGE);
+ }
+ else phone=true;
+ boolean b = false;
+ for(int i = 0; i < semail.length(); i++){
+ if(semail.charAt(i) == '@'){
+ b = true;
+ }
+ }
+ if(semail.length()==0){
+ JOptionPane.showMessageDialog(this,"Empty in Email,please enter a Email.","TRY",JOptionPane.ERROR_MESSAGE);
+ }
+ else if(b == true)email=true;
+ else JOptionPane.showMessageDialog(this,"Invalid Email,please enter a vaild Email.","TRY",JOptionPane.ERROR_MESSAGE);
+ if(sadd.length()==0)JOptionPane.showMessageDialog(this,"EMPTY in Addres,please enter a vaild Addres.","TRY",JOptionPane.ERROR_MESSAGE);
+ else addres=true;
+ if(addres==true && name==true && phone==true && b==true){
+ model = (DefaultTableModel)jTable1.getModel();
+ model.addRow(new Object[]{txtname.getText(),jTextField4.getText(),txtemail.getText(),txtadress.getText()});
+ }
+ }//GEN-LAST:event_jButton1ActionPerformed
+
+ private void txtadressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtadressActionPerformed
+ // TODO add your handling code here:
+ String s = txtadress.getText();
+
+ if(s.length() == 0){
+ System.out.println("Invalid adress");
+ }
+ }//GEN-LAST:event_txtadressActionPerformed
+
+ private void txtemailActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtemailActionPerformed
+ // TODO add your handling code here:
+ String s = txtemail.getText();
+
+ boolean b = false;
+ for(int i = 0; i < s.length(); i++){
+ if(s.charAt(i) == '@'){
+ b = true;
+ }
+ }
+
+ if(b != true)
+ System.out.println("Invalid email adress");
+ }//GEN-LAST:event_txtemailActionPerformed
+
+ private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
+ // TODO add your handling code here:
+ int row; DefaultTableModel model;
+ row = jTable1.getSelectedRow();
+ if(0>row){
+ JOptionPane.showMessageDialog(this,"NO row selected! ,Please select a row.","Select",JOptionPane.ERROR_MESSAGE);
+ }
+ else{
+ model = (DefaultTableModel)jTable1.getModel();
+ model.removeRow(row);
+ }
+ }//GEN-LAST:event_jButton2ActionPerformed
+
+ private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
+ // TODO add your handling code here:
+ txtname.setText("");
+ jTextField4.setText("");
+ txtemail.setText("");
+ txtadress.setText("");
+ }//GEN-LAST:event_jButton3ActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(MYcontact.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(MYcontact.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(MYcontact.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(MYcontact.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the form */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new MYcontact().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JPanel gg;
+ private javax.swing.JButton jButton1;
+ private javax.swing.JButton jButton3;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel6;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JTable jTable1;
+ private javax.swing.JTextArea jTextArea1;
+ private javax.swing.JTextField jTextField4;
+ private javax.swing.JTextField txtadress;
+ private javax.swing.JTextField txtemail;
+ private javax.swing.JTextField txtname;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/mycontact/model.java b/src/mycontact/model.java
new file mode 100644
index 0000000..5f6efcd
--- /dev/null
+++ b/src/mycontact/model.java
@@ -0,0 +1,18 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package mycontact;
+
+/**
+ *
+ * @author Mohamedan_Farag
+ */
+class model {
+
+ static void removeRow(int row) {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+}
diff --git a/src/photos/add-friend.png b/src/photos/add-friend.png
new file mode 100644
index 0000000..65af7f5
Binary files /dev/null and b/src/photos/add-friend.png differ
diff --git a/src/photos/clear.png b/src/photos/clear.png
new file mode 100644
index 0000000..4a8b72e
Binary files /dev/null and b/src/photos/clear.png differ
diff --git a/src/photos/delete.png b/src/photos/delete.png
new file mode 100644
index 0000000..2993cff
Binary files /dev/null and b/src/photos/delete.png differ
diff --git a/src/photos/friends.png b/src/photos/friends.png
new file mode 100644
index 0000000..c7ba02b
Binary files /dev/null and b/src/photos/friends.png differ