From df70edb3a6ee19e9fbc139ef7f41a37252af5a25 Mon Sep 17 00:00:00 2001 From: pooyancoder Date: Sat, 10 May 2025 21:45:01 +0330 Subject: [PATCH 1/3] first completeted --- .idea/.gitignore | 3 + .idea/JavaSwingSimpleExercise.iml | 11 +++ .idea/misc.xml | 6 ++ .idea/modules.xml | 8 +++ .idea/vcs.xml | 6 ++ expretions.txt | 1 + .../JavaSwingSimpleExercise/ClickApp.class | Bin 0 -> 1770 bytes .../JavaSwingSimpleExercise/E1.class | Bin 0 -> 1047 bytes .../images/img-1-1.png | Bin 0 -> 8490 bytes .../images/img-1-2.png | Bin 0 -> 8182 bytes .../JavaSwingSimpleExercise/readme-part-1.md | 67 ++++++++++++++++++ part-1/ClickApp.java | 29 ++++++++ part-1/E1.java | 8 +++ 13 files changed, 139 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/JavaSwingSimpleExercise.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 expretions.txt create mode 100644 out/production/JavaSwingSimpleExercise/ClickApp.class create mode 100644 out/production/JavaSwingSimpleExercise/E1.class create mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-2.png create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-1.md create mode 100644 part-1/ClickApp.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/JavaSwingSimpleExercise.iml b/.idea/JavaSwingSimpleExercise.iml new file mode 100644 index 0000000..f29f585 --- /dev/null +++ b/.idea/JavaSwingSimpleExercise.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2d16929 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/expretions.txt b/expretions.txt new file mode 100644 index 0000000..adc399b --- /dev/null +++ b/expretions.txt @@ -0,0 +1 @@ +starting to work with swing diff --git a/out/production/JavaSwingSimpleExercise/ClickApp.class b/out/production/JavaSwingSimpleExercise/ClickApp.class new file mode 100644 index 0000000000000000000000000000000000000000..370687f65e6e3db2d0f991be72dee4769bacc65b GIT binary patch literal 1770 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 new ClickCounterApp().setVisible(true)); +} +``` + +*Explanation:* Using `SwingUtilities.invokeLater` ensures thread safety by creating and showing the GUI on the Swing event thread. +--- +### output of the code: + +... +... diff --git a/part-1/ClickApp.java b/part-1/ClickApp.java new file mode 100644 index 0000000..1d76dd5 --- /dev/null +++ b/part-1/ClickApp.java @@ -0,0 +1,29 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ClickApp extends JFrame implements ActionListener { + private JLabel clickLabel; + private JButton clickButton; + private int counter = 0; + + public ClickApp() { + setTitle("Click App"); + clickButton = new JButton("click Me"); + clickLabel = new JLabel("click : 0", SwingConstants.CENTER); + clickButton.addActionListener(this); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setSize(400, 400); + + setLayout(new BorderLayout()); + add(clickButton, BorderLayout.SOUTH); + add(clickLabel, BorderLayout.CENTER); + } + + @Override + public void actionPerformed(ActionEvent event) { + counter++; + clickLabel.setText("click : " + counter); + } +} diff --git a/part-1/E1.java b/part-1/E1.java index e69de29..99d9d84 100644 --- a/part-1/E1.java +++ b/part-1/E1.java @@ -0,0 +1,8 @@ +import javax.swing.*; + +public class E1 { + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new ClickApp().setVisible(true)); + } +} \ No newline at end of file From a18dba369357aeba564ef8edd6ae9d6a828350ad Mon Sep 17 00:00:00 2001 From: pooyancoder Date: Sat, 10 May 2025 23:28:20 +0330 Subject: [PATCH 2/3] two completed --- .idea/JavaSwingSimpleExercise.iml | 2 +- .../JavaSwingSimpleExercise/ClickApp.class | Bin 1770 -> 0 bytes .../{E1.class => E2.class} | Bin 1047 -> 1050 bytes .../JavaSwingSimpleExercise/GreetingApp.class | Bin 0 -> 2409 bytes .../images/img-1-1.png | Bin 8490 -> 0 bytes .../images/img-1-2.png | Bin 8182 -> 0 bytes .../images/img-2-1.png | Bin 0 -> 10494 bytes .../images/img-2-2.png | Bin 0 -> 10864 bytes .../images/img-2-3.png | Bin 0 -> 10223 bytes .../JavaSwingSimpleExercise/readme-part-1.md | 67 --------------- .../JavaSwingSimpleExercise/readme-part-2.md | 78 ++++++++++++++++++ part-2/E2.java | 8 ++ part-2/GreetingApp.java | 45 ++++++++++ 13 files changed, 132 insertions(+), 68 deletions(-) delete mode 100644 out/production/JavaSwingSimpleExercise/ClickApp.class rename out/production/JavaSwingSimpleExercise/{E1.class => E2.class} (80%) create mode 100644 out/production/JavaSwingSimpleExercise/GreetingApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-1.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-1-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-3.png delete mode 100644 out/production/JavaSwingSimpleExercise/readme-part-1.md create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-2.md create mode 100644 part-2/GreetingApp.java diff --git a/.idea/JavaSwingSimpleExercise.iml b/.idea/JavaSwingSimpleExercise.iml index f29f585..55b1a14 100644 --- a/.idea/JavaSwingSimpleExercise.iml +++ b/.idea/JavaSwingSimpleExercise.iml @@ -3,7 +3,7 @@ - + diff --git a/out/production/JavaSwingSimpleExercise/ClickApp.class b/out/production/JavaSwingSimpleExercise/ClickApp.class deleted file mode 100644 index 370687f65e6e3db2d0f991be72dee4769bacc65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1770 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 TnqinbivX#Q^5P{Q^uPWOb|UxK literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-2-2.png b/out/production/JavaSwingSimpleExercise/images/img-2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f28a16e34557179ba836e49848254157e477f156 GIT binary patch literal 10864 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 P!%&h}ldE`T{_%eS=TI>l literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/readme-part-1.md b/out/production/JavaSwingSimpleExercise/readme-part-1.md deleted file mode 100644 index f7292df..0000000 --- a/out/production/JavaSwingSimpleExercise/readme-part-1.md +++ /dev/null @@ -1,67 +0,0 @@ -## Exercise 1: Click Counter Application - -### Description & Goal - -Create a simple GUI application that tracks how many times a user clicks a button and displays the count in real time. This exercise reinforces the basics of Swing components and event handling. - -### Code Breakdown - -**Part 1: Field Declarations** -Define the UI components and a counter variable. - -```java -public class ClickCounterApp extends JFrame implements ActionListener { - private JLabel counterLabel; // Displays the click count - private JButton clickButton; // Button to register clicks - private int count = 0; // Stores the current count -} -``` - -*Explanation:* We declare a `JLabel` for showing the count, a `JButton` for clicks, and an integer `count` initialized to 0. - -**Part 2: Constructor Setup** -Initialize and arrange components in the window. - -```java -public ClickCounterApp() { - setTitle("Click Counter"); - counterLabel = new JLabel("Clicks: 0", SwingConstants.CENTER); - clickButton = new JButton("Click Me"); - clickButton.addActionListener(this); - - setLayout(new BorderLayout()); - add(counterLabel, BorderLayout.CENTER); - add(clickButton, BorderLayout.SOUTH); -} -``` - -*Explanation:* In the constructor we set the title, create the label and button, attach an `ActionListener` to the button, choose a `BorderLayout`, and place the label at center and button at bottom. - -**Part 3: Event Handling** -Update count and label text when the button is clicked. - -```java -@Override -public void actionPerformed(ActionEvent e) { - count++; // Increment the click counter - counterLabel.setText("Clicks: " + count); -} -``` - -*Explanation:* The `actionPerformed` method is called on each click. We increase `count` by one and refresh the label text to reflect the new value. - -**Part 4: Application Entry Point** -Launch the GUI on the Event Dispatch Thread. - -```java -public static void main(String[] args) { - SwingUtilities.invokeLater(() -> new ClickCounterApp().setVisible(true)); -} -``` - -*Explanation:* Using `SwingUtilities.invokeLater` ensures thread safety by creating and showing the GUI on the Swing event thread. ---- -### output of the code: - -... -... diff --git a/out/production/JavaSwingSimpleExercise/readme-part-2.md b/out/production/JavaSwingSimpleExercise/readme-part-2.md new file mode 100644 index 0000000..4aaea9a --- /dev/null +++ b/out/production/JavaSwingSimpleExercise/readme-part-2.md @@ -0,0 +1,78 @@ +## Exercise 2: Greeting Form Application + +### Description & Goal + +Create a GUI form where the user enters their name into a text field and clicks a button to display a personalized greeting. This exercise practices input handling, text fields, and dynamic label updates. + +### Code Breakdown + +**Part 1: Field Declarations** +Define the input, button, and label components. + +```java +public class GreetingFormApp extends JFrame implements ActionListener { + private JTextField nameField; // Field for user input + private JButton greetButton; // Button to trigger greeting + private JLabel messageLabel; // Label to display greeting +} +``` + +*Explanation:* We declare a `JTextField` for entering the name, a `JButton` for submitting, and a `JLabel` for showing messages. + +**Part 2: Constructor Setup** +Initialize components and arrange them using a simple layout. + +```java +public GreetingFormApp() { + setTitle("Greeting Form"); + nameField = new JTextField(15); + greetButton = new JButton("Greet"); + messageLabel = new JLabel("Enter your name and press Greet.", SwingConstants.CENTER); + + greetButton.addActionListener(this); + + JPanel inputPanel = new JPanel(); + inputPanel.add(new JLabel("Name:")); + inputPanel.add(nameField); + inputPanel.add(greetButton); + + setLayout(new BorderLayout()); + add(inputPanel, BorderLayout.NORTH); + add(messageLabel, BorderLayout.CENTER); +} +``` + +*Explanation:* In the constructor, we set the title, instantiate the text field, button, and label, attach the listener, group the input components in a `JPanel`, and use `BorderLayout` to place the input panel at the top and the message label in the center. + +**Part 3: Event Handling** +Read the text field and update the label when the button is clicked. + +```java +@Override +public void actionPerformed(ActionEvent e) { + String name = nameField.getText().trim(); + if (name.isEmpty()) { + messageLabel.setText("Please enter a name."); + } else { + messageLabel.setText("Hello, " + name + "!"); + } +} +``` + +*Explanation:* On button click, we get the trimmed input. If empty, prompt the user; otherwise, display "Hello, {name}!". + +**Part 4: Application Entry Point** +Start the form on the Event Dispatch Thread. + +```java +public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new GreetingFormApp().setVisible(true)); +} +``` + +*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. +--- +### output of the code: +... +... +... diff --git a/part-2/E2.java b/part-2/E2.java index e69de29..f0a86f5 100644 --- a/part-2/E2.java +++ b/part-2/E2.java @@ -0,0 +1,8 @@ +import javax.swing.*; + +public class E2 { + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new GreetingApp().setVisible(true)); + } +} \ No newline at end of file diff --git a/part-2/GreetingApp.java b/part-2/GreetingApp.java new file mode 100644 index 0000000..ad726e9 --- /dev/null +++ b/part-2/GreetingApp.java @@ -0,0 +1,45 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class GreetingApp extends JFrame implements ActionListener { + private JLabel appLabel; + private JButton greetingButton; + private TextField nameField; + private final JLabel sticker; + + public GreetingApp() { + setSize(400, 100); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocationRelativeTo(null); + setTitle("Greeting Form"); + sticker = new JLabel("NAME :", SwingConstants.LEFT); + nameField = new TextField(15); + appLabel = new JLabel("Enter your name and greet", SwingConstants.CENTER); + greetingButton = new JButton("Greet"); + + greetingButton.addActionListener(this); + + JPanel appPanel = new JPanel(); + + appPanel.add(sticker); + appPanel.add(nameField); + appPanel.add(greetingButton); + + setLayout(new BorderLayout()); + add(appPanel, BorderLayout.NORTH); + add(appLabel, BorderLayout.CENTER); + + } + + @Override + public void actionPerformed(ActionEvent event) { + String name = nameField.getText().trim(); + if (!name.isEmpty()) { + appLabel.setText("hello " + name); + }else { + appLabel.setText("hello " + name + " !"); + } + } +} From aa254b64601fd3ca0a8172ce12914cab4317a3be Mon Sep 17 00:00:00 2001 From: pooyancoder Date: Sun, 11 May 2025 20:16:30 +0330 Subject: [PATCH 3/3] ahh --- .idea/JavaSwingSimpleExercise.iml | 2 +- .../{E2.class => E4.class} | Bin 1050 -> 1054 bytes .../JavaSwingSimpleExercise/GreetingApp.class | Bin 2409 -> 0 bytes .../RegistrationApp.class | Bin 0 -> 4534 bytes .../images/img-2-1.png | Bin 10494 -> 0 bytes .../images/img-2-2.png | Bin 10864 -> 0 bytes .../images/img-2-3.png | Bin 10223 -> 0 bytes .../images/img-4-1.png | Bin 0 -> 17857 bytes .../images/img-4-2.png | Bin 0 -> 20406 bytes .../images/img-4-3.png | Bin 0 -> 34017 bytes .../JavaSwingSimpleExercise/readme-part-2.md | 78 ----------- .../JavaSwingSimpleExercise/readme-part-4.md | 132 ++++++++++++++++++ part-3/ColorApp.java | 52 +++++++ part-3/E3.java | 8 ++ part-4/E4.java | 8 ++ part-4/RegistrationApp.java | 100 +++++++++++++ 16 files changed, 301 insertions(+), 79 deletions(-) rename out/production/JavaSwingSimpleExercise/{E2.class => E4.class} (79%) delete mode 100644 out/production/JavaSwingSimpleExercise/GreetingApp.class create mode 100644 out/production/JavaSwingSimpleExercise/RegistrationApp.class delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-1.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-2.png delete mode 100644 out/production/JavaSwingSimpleExercise/images/img-2-3.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-1.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-2.png create mode 100644 out/production/JavaSwingSimpleExercise/images/img-4-3.png delete mode 100644 out/production/JavaSwingSimpleExercise/readme-part-2.md create mode 100644 out/production/JavaSwingSimpleExercise/readme-part-4.md create mode 100644 part-3/ColorApp.java create mode 100644 part-4/RegistrationApp.java diff --git a/.idea/JavaSwingSimpleExercise.iml b/.idea/JavaSwingSimpleExercise.iml index 55b1a14..ab9bca8 100644 --- a/.idea/JavaSwingSimpleExercise.iml +++ b/.idea/JavaSwingSimpleExercise.iml @@ -3,7 +3,7 @@ - + diff --git a/out/production/JavaSwingSimpleExercise/E2.class b/out/production/JavaSwingSimpleExercise/E4.class similarity index 79% rename from out/production/JavaSwingSimpleExercise/E2.class rename to out/production/JavaSwingSimpleExercise/E4.class index b4f556de18acc2622855fd7cb234a4b981540124..e19f65b550cc48e95f1afb5559d85416b6e27fb2 100644 GIT binary patch delta 41 xcmbQmF^^-yPG0_?)bz~alA^?t%>2BGhjbZDCVsGDG?}c;7|&?3xtp<{2>?Il4sieg delta 37 tcmbQoF^gluPEKz3qSVxq%)Io8$8;HuCVsJEG@7i>7|&?5xu3D02>|`v46OhF diff --git a/out/production/JavaSwingSimpleExercise/GreetingApp.class b/out/production/JavaSwingSimpleExercise/GreetingApp.class deleted file mode 100644 index 3b1e656d2f4ba9922e44b734a09ddc4b5ed177ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2409 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 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-2-1.png b/out/production/JavaSwingSimpleExercise/images/img-2-1.png deleted file mode 100644 index 7025c4e622a3cce56484056766d096e4155edf4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10494 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 TnqinbivX#Q^5P{Q^uPWOb|UxK diff --git a/out/production/JavaSwingSimpleExercise/images/img-2-2.png b/out/production/JavaSwingSimpleExercise/images/img-2-2.png deleted file mode 100644 index f28a16e34557179ba836e49848254157e477f156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10864 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 P!%&h}ldE`T{_%eS=TI>l diff --git a/out/production/JavaSwingSimpleExercise/images/img-4-1.png b/out/production/JavaSwingSimpleExercise/images/img-4-1.png new file mode 100644 index 0000000000000000000000000000000000000000..137d23fefa613de69ed8b255e29468e673dc4a69 GIT binary patch literal 17857 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 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/images/img-4-3.png b/out/production/JavaSwingSimpleExercise/images/img-4-3.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdaa57f2ae867d9bb433a6185bcd1a9f9b4f5fe GIT binary patch literal 34017 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 V_S(9L8wdPRQBapJmVNr}{{X!KkaGY4 literal 0 HcmV?d00001 diff --git a/out/production/JavaSwingSimpleExercise/readme-part-2.md b/out/production/JavaSwingSimpleExercise/readme-part-2.md deleted file mode 100644 index 4aaea9a..0000000 --- a/out/production/JavaSwingSimpleExercise/readme-part-2.md +++ /dev/null @@ -1,78 +0,0 @@ -## Exercise 2: Greeting Form Application - -### Description & Goal - -Create a GUI form where the user enters their name into a text field and clicks a button to display a personalized greeting. This exercise practices input handling, text fields, and dynamic label updates. - -### Code Breakdown - -**Part 1: Field Declarations** -Define the input, button, and label components. - -```java -public class GreetingFormApp extends JFrame implements ActionListener { - private JTextField nameField; // Field for user input - private JButton greetButton; // Button to trigger greeting - private JLabel messageLabel; // Label to display greeting -} -``` - -*Explanation:* We declare a `JTextField` for entering the name, a `JButton` for submitting, and a `JLabel` for showing messages. - -**Part 2: Constructor Setup** -Initialize components and arrange them using a simple layout. - -```java -public GreetingFormApp() { - setTitle("Greeting Form"); - nameField = new JTextField(15); - greetButton = new JButton("Greet"); - messageLabel = new JLabel("Enter your name and press Greet.", SwingConstants.CENTER); - - greetButton.addActionListener(this); - - JPanel inputPanel = new JPanel(); - inputPanel.add(new JLabel("Name:")); - inputPanel.add(nameField); - inputPanel.add(greetButton); - - setLayout(new BorderLayout()); - add(inputPanel, BorderLayout.NORTH); - add(messageLabel, BorderLayout.CENTER); -} -``` - -*Explanation:* In the constructor, we set the title, instantiate the text field, button, and label, attach the listener, group the input components in a `JPanel`, and use `BorderLayout` to place the input panel at the top and the message label in the center. - -**Part 3: Event Handling** -Read the text field and update the label when the button is clicked. - -```java -@Override -public void actionPerformed(ActionEvent e) { - String name = nameField.getText().trim(); - if (name.isEmpty()) { - messageLabel.setText("Please enter a name."); - } else { - messageLabel.setText("Hello, " + name + "!"); - } -} -``` - -*Explanation:* On button click, we get the trimmed input. If empty, prompt the user; otherwise, display "Hello, {name}!". - -**Part 4: Application Entry Point** -Start the form on the Event Dispatch Thread. - -```java -public static void main(String[] args) { - SwingUtilities.invokeLater(() -> new GreetingFormApp().setVisible(true)); -} -``` - -*Explanation:* We use `invokeLater` to ensure the GUI is created and manipulated on the Event Dispatch Thread, then display the frame. ---- -### output of the code: -... -... -... diff --git a/out/production/JavaSwingSimpleExercise/readme-part-4.md b/out/production/JavaSwingSimpleExercise/readme-part-4.md new file mode 100644 index 0000000..2b65f53 --- /dev/null +++ b/out/production/JavaSwingSimpleExercise/readme-part-4.md @@ -0,0 +1,132 @@ +## Exercise 4: User Registration Form Application + +### Description & Goal + +Design a comprehensive registration form using `GridBagLayout`. Students will arrange multiple Swing components—text fields, password field, radio buttons, checkboxes, and a submit button—in a responsive grid. The goal is to practice advanced layout management and component integration. + +### Code Breakdown + +**Part 1: Field Declarations** +Define all UI components and layout constraints. + +```java +public class RegistrationFormApp extends JFrame implements ActionListener { + private JTextField txtName; // User name input + private JTextField txtEmail; // User email input + private JPasswordField txtPassword; // Password input + private JRadioButton rbMale, rbFemale; // Gender selection + private JCheckBox cbJava, cbPython, cbCpp; // Interests selection + private JButton btnSubmit; // Submit form button + private GridBagConstraints gbc; // Layout constraints +} +``` + +*Explanation:* We declare fields for name, email, and password inputs; radio buttons for gender; checkboxes for interests; a submit button; and `GridBagConstraints` for positioning. + +**Part 2: Constructor Setup** +Initialize components, configure `GridBagLayout`, and add items. + +```java +public RegistrationFormApp() { + setTitle("User Registration"); + setSize(500, 350); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setLocationRelativeTo(null); + + JPanel panel = new JPanel(new GridBagLayout()); + gbc = new GridBagConstraints(); + gbc.insets = new Insets(5, 5, 5, 5); + gbc.fill = GridBagConstraints.HORIZONTAL; + + // Row 0: Name label & field + gbc.gridx = 0; gbc.gridy = 0; + panel.add(new JLabel("Name:"), gbc); + gbc.gridx = 1; + txtName = new JTextField(20); + panel.add(txtName, gbc); + + // Row 1: Email label & field + gbc.gridx = 0; gbc.gridy = 1; + panel.add(new JLabel("Email:"), gbc); + gbc.gridx = 1; + txtEmail = new JTextField(20); + panel.add(txtEmail, gbc); + + // Row 2: Password label & field + gbc.gridx = 0; gbc.gridy = 2; + panel.add(new JLabel("Password:"), gbc); + gbc.gridx = 1; + txtPassword = new JPasswordField(20); + panel.add(txtPassword, gbc); + + // Row 3: Gender selection + gbc.gridx = 0; gbc.gridy = 3; + panel.add(new JLabel("Gender:"), gbc); + gbc.gridx = 1; + rbMale = new JRadioButton("Male"); rbFemale = new JRadioButton("Female"); + ButtonGroup bg = new ButtonGroup(); bg.add(rbMale); bg.add(rbFemale); + JPanel genderPanel = new JPanel(); genderPanel.add(rbMale); genderPanel.add(rbFemale); + panel.add(genderPanel, gbc); + + // Row 4: Interests selection + gbc.gridx = 0; gbc.gridy = 4; + panel.add(new JLabel("Interests:"), gbc); + gbc.gridx = 1; + cbJava = new JCheckBox("Java"); cbPython = new JCheckBox("Python"); cbCpp = new JCheckBox("C++"); + JPanel interestPanel = new JPanel(); + interestPanel.add(cbJava); interestPanel.add(cbPython); interestPanel.add(cbCpp); + panel.add(interestPanel, gbc); + + // Row 5: Submit button + gbc.gridx = 1; gbc.gridy = 5; + gbc.anchor = GridBagConstraints.CENTER; + btnSubmit = new JButton("Submit"); + btnSubmit.addActionListener(this); + panel.add(btnSubmit, gbc); + + add(panel); +} +``` + +*Explanation:* We configure `GridBagLayout` with padding, add labels and inputs sequentially by grid coordinates, and group related radio and checkbox components in sub-panels. + +**Part 3: Event Handling** +Collect input values on submit and display them. + +```java +@Override +public void actionPerformed(ActionEvent e) { + String name = txtName.getText(); + String email = txtEmail.getText(); + String gender = rbMale.isSelected() ? "Male" : rbFemale.isSelected() ? "Female" : "Unspecified"; + String interests = ""; + if (cbJava.isSelected()) interests += "Java "; + if (cbPython.isSelected()) interests += "Python "; + if (cbCpp.isSelected()) interests += "C++ "; + + JOptionPane.showMessageDialog(this, + "Name: " + name + "\n" + + "Email: " + email + "\n" + + "Gender: " + gender + "\n" + + "Interests: " + interests, + "Registration Details", JOptionPane.INFORMATION_MESSAGE); +} +``` + +*Explanation:* On button press, we read each field's value, determine selected options, and show a summary dialog. + +**Part 4: Application Entry Point** +Run the form on the Swing event thread. + +```java +public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new RegistrationFormApp().setVisible(true)); +} +``` + +*Explanation:* Ensures safe creation and display of the GUI on the Event Dispatch Thread. +--- +### output of the code: +... +... +... diff --git a/part-3/ColorApp.java b/part-3/ColorApp.java new file mode 100644 index 0000000..df7abd1 --- /dev/null +++ b/part-3/ColorApp.java @@ -0,0 +1,52 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ColorApp extends JFrame implements ActionListener { + private JButton green; + private JButton blue; + private JButton red; + private JPanel panel; + + public ColorApp() { + setLocationRelativeTo(null); + setDefaultCloseOperation(EXIT_ON_CLOSE); + setTitle("THEME COLOR APP"); + setSize(400, 300); + + panel = new JPanel(); + + green = new JButton("GREEN"); + blue = new JButton("BLUE"); + red = new JButton("red"); + + green.setActionCommand("green"); + blue.setActionCommand("blue"); + red.setActionCommand("red"); + + green.addActionListener(this); + blue.addActionListener(this); + red.addActionListener(this); + + JPanel buttonPanel = new JPanel(); + buttonPanel.add(green); + buttonPanel.add(blue); + buttonPanel.add(red); + + setLayout(new BorderLayout()); + add(panel, BorderLayout.CENTER); + add(buttonPanel, BorderLayout.NORTH); + } + + @Override + public void actionPerformed(ActionEvent event) { + if (event.getActionCommand().equalsIgnoreCase("green")){ + panel.setBackground(Color.GREEN); + }else if (event.getActionCommand().equalsIgnoreCase("blue")) { + panel.setBackground(Color.BLUE); + } else if (event.getActionCommand().equalsIgnoreCase("red")) { + panel.setBackground(Color.RED); + } + } +} diff --git a/part-3/E3.java b/part-3/E3.java index e69de29..de81d45 100644 --- a/part-3/E3.java +++ b/part-3/E3.java @@ -0,0 +1,8 @@ +import javax.swing.*; + +public class E3 { + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new ColorApp().setVisible(true)); + } +} \ No newline at end of file diff --git a/part-4/E4.java b/part-4/E4.java index e69de29..89e942f 100644 --- a/part-4/E4.java +++ b/part-4/E4.java @@ -0,0 +1,8 @@ +import javax.swing.*; + +public class E4 { + + public static void main(String[] args) { + SwingUtilities.invokeLater(() ->new RegistrationApp().setVisible(true)); + } +} \ No newline at end of file diff --git a/part-4/RegistrationApp.java b/part-4/RegistrationApp.java new file mode 100644 index 0000000..f2ed1ec --- /dev/null +++ b/part-4/RegistrationApp.java @@ -0,0 +1,100 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class RegistrationApp extends JFrame implements ActionListener { + private JLabel nameLabel; + private JLabel emailLabel; + private JLabel passwordLabel; + private JRadioButton rbMale, rbFemale; + private JCheckBox cbJava, cbPython, cbCpp; + private JTextField nameField; + private JTextField emailField; + private JPasswordField passwordField; + private GridBagConstraints gbc; + + + private JButton submit; + + public RegistrationApp() { + setTitle("USER REGISTRATION APP"); + setSize(500, 350); + setDefaultCloseOperation(EXIT_ON_CLOSE); + + JPanel panel = new JPanel(new GridBagLayout()); + gbc = new GridBagConstraints(); + gbc.insets = new Insets(5, 5, 5, 5); + gbc.fill = GridBagConstraints.HORIZONTAL; + + + nameLabel = new JLabel("NAME"); + emailLabel = new JLabel("E-MAIL"); + passwordLabel = new JLabel("PASSWORD"); + + gbc.gridx = 0; + gbc.gridy = 0; + panel.add(nameLabel = new JLabel("NAME : "), gbc); + gbc.gridx = 1; + panel.add(nameField = new JTextField(15), gbc); + + gbc.gridx = 0; + gbc.gridy = 1; + panel.add(emailLabel = new JLabel("E-MAIL : "), gbc); + gbc.gridx = 1; + panel.add(emailField = new JTextField(15), gbc); + + gbc.gridx = 0; + gbc.gridy = 2; + panel.add(passwordLabel = new JLabel("PASSWORD : "), gbc); + gbc.gridx = 1; + panel.add(passwordField = new JPasswordField(15), gbc); + + gbc.gridx = 0; gbc.gridy = 3; + panel.add(new JLabel("Gender:"), gbc); + gbc.gridx = 1; + rbMale = new JRadioButton("Male"); rbFemale = new JRadioButton("Female"); + ButtonGroup bg = new ButtonGroup(); bg.add(rbMale); bg.add(rbFemale); + JPanel genderPanel = new JPanel(); genderPanel.add(rbMale); genderPanel.add(rbFemale); + panel.add(genderPanel, gbc); + + gbc.gridx = 0; + gbc.gridy = 4; + panel.add(new JLabel("Interests:"), gbc); + gbc.gridx = 1; + cbJava = new JCheckBox("java");cbPython = new JCheckBox("python");cbCpp = new JCheckBox("C++"); + JPanel interestPanel = new JPanel(); + interestPanel.add(cbJava); interestPanel.add(cbPython); interestPanel.add(cbCpp); + panel.add(interestPanel, gbc); + + gbc.gridx = 0; + gbc.gridy = 5; + gbc.anchor = GridBagConstraints.CENTER; + submit = new JButton("SUBMIT"); + submit.addActionListener(this); + panel.add(submit, gbc); + + add(panel); + } + + @Override + public void actionPerformed(ActionEvent event) { + String name = nameField.getText(); + String email = emailField.getText(); + String gender = rbMale.isSelected() ? "male" : rbFemale.isSelected() ? "Female" : "unSpecified"; + String interest = ""; + interest += cbJava.isSelected() ? "JAVA " : ""; + interest += cbPython.isSelected()? "PYTHON " : ""; + interest += cbCpp.isSelected() ? "C++ " : ""; + + JOptionPane.showMessageDialog(this, + "Name: " + name + "\n" + + "Email: " + email + "\n" + + "Gender: " + gender + "\n" + + "Interests: " + interest, + "Registration Details", JOptionPane.INFORMATION_MESSAGE); + + } + + +}