From b68b8337932d645e3a2d2e9b2f068e216bc27943 Mon Sep 17 00:00:00 2001 From: Sarina Date: Fri, 9 May 2025 23:37:08 +0330 Subject: [PATCH] Java Swing Simple Exercise is Completed. --- .idea/.gitignore | 8 ++ .idea/JavaSwingSimpleExercise.iml | 14 +++ .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 + .../JavaSwingSimpleExercise/E1.class | Bin 0 -> 2409 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/E1.java | 37 +++++++ part-2/E2.java | 44 ++++++++ part-3/E3.java | 59 ++++++++++ part-4/E4.java | 104 ++++++++++++++++++ 13 files changed, 353 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 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 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/JavaSwingSimpleExercise.iml b/.idea/JavaSwingSimpleExercise.iml new file mode 100644 index 0000000..1644d35 --- /dev/null +++ b/.idea/JavaSwingSimpleExercise.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f03c948 --- /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..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/JavaSwingSimpleExercise/E1.class b/out/production/JavaSwingSimpleExercise/E1.class new file mode 100644 index 0000000000000000000000000000000000000000..a63b8fd12ec7e27355ada913d8b9ed8d3b99bbb9 GIT binary patch literal 2409 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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/E1.java b/part-1/E1.java index e69de29..07b5dd7 100644 --- a/part-1/E1.java +++ b/part-1/E1.java @@ -0,0 +1,37 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class E1 extends JFrame implements ActionListener { + private JLabel counterLabel; + private JButton clickButton; + private int count = 0; + + public E1() { + setTitle("Click Counter"); + setSize(300, 200); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + 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); + } + + @Override + public void actionPerformed(ActionEvent e) { + count++; + counterLabel.setText("Clicks: " + count); + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> { + E1 app = new E1(); + app.setVisible(true); + }); + } +} diff --git a/part-2/E2.java b/part-2/E2.java index e69de29..f6ccf2a 100644 --- a/part-2/E2.java +++ b/part-2/E2.java @@ -0,0 +1,44 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class E2 extends JFrame implements ActionListener { + private JTextField nameField; + private JButton greetButton; + private JLabel messageLabel; + + public E2() { + 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); + + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setSize(400, 200); + } + + @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 + "!"); + } + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new E2().setVisible(true)); + } +} diff --git a/part-3/E3.java b/part-3/E3.java index e69de29..04ec6c2 100644 --- a/part-3/E3.java +++ b/part-3/E3.java @@ -0,0 +1,59 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class E3 extends JFrame implements ActionListener { + private JPanel mainPanel; + private JButton redButton; + private JButton greenButton; + private JButton blueButton; + + public E3() { + setTitle("Theme Color Selector"); + + mainPanel = new JPanel(); + + redButton = new JButton("Red"); + greenButton = new JButton("Green"); + blueButton = new JButton("Blue"); + + redButton.setActionCommand("RED"); + greenButton.setActionCommand("GREEN"); + blueButton.setActionCommand("BLUE"); + + redButton.addActionListener(this); + greenButton.addActionListener(this); + blueButton.addActionListener(this); + + JPanel buttonPanel = new JPanel(); + buttonPanel.add(redButton); + buttonPanel.add(greenButton); + buttonPanel.add(blueButton); + + setLayout(new BorderLayout()); + add(buttonPanel, BorderLayout.NORTH); + add(mainPanel, BorderLayout.CENTER); + + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setSize(400, 200); + } + + @Override + public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case "RED": + mainPanel.setBackground(Color.RED); + break; + case "GREEN": + mainPanel.setBackground(Color.GREEN); + break; + case "BLUE": + mainPanel.setBackground(Color.BLUE); + break; + } + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new E3().setVisible(true)); + } +} diff --git a/part-4/E4.java b/part-4/E4.java index e69de29..06e28ef 100644 --- a/part-4/E4.java +++ b/part-4/E4.java @@ -0,0 +1,104 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; + +public class E4 extends JFrame implements ActionListener { + private JTextField txtName; + private JTextField txtEmail; + private JPasswordField txtPassword; + private JRadioButton rbMale, rbFemale; + private JCheckBox cbJava, cbPython, cbCpp; + private JButton btnSubmit; + private GridBagConstraints gbc; + + public E4() { + 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; + + gbc.gridx = 0; + gbc.gridy = 0; + panel.add(new JLabel("Name:"), gbc); + gbc.gridx = 1; + txtName = new JTextField(20); + panel.add(txtName, gbc); + + gbc.gridx = 0; + gbc.gridy = 1; + panel.add(new JLabel("Email:"), gbc); + gbc.gridx = 1; + txtEmail = new JTextField(20); + panel.add(txtEmail, gbc); + + gbc.gridx = 0; + gbc.gridy = 2; + panel.add(new JLabel("Password:"), gbc); + gbc.gridx = 1; + txtPassword = new JPasswordField(20); + panel.add(txtPassword, 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 = 1; + gbc.gridy = 5; + gbc.anchor = GridBagConstraints.CENTER; + btnSubmit = new JButton("Submit"); + btnSubmit.addActionListener(this); + panel.add(btnSubmit, gbc); + + add(panel); + } + + @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); + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(() -> new E4().setVisible(true)); + } +}