What is Java Swing
What is Java Swing
JFRAME
Button
Label
Textbox
Radio button
Checkbox
Dropdownbox
Jtable
JfileChooser
Steps to design
Click
Double click
Mouseup
Mouse down
Keyboardevents
Getting Started
1. Creating a Basic Window (JFrame)
import javax.swing.JFrame;
Adding Components
2. Adding a Button (JButton)
import javax.swing.*;
frame.add(button);
frame.setSize(400, 300);
frame.setLayout(null); // No layout manager
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Event Handling
. Responding to Button Clicks
import javax.swing.*;
import java.awt.event.*;
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(frame, "Button Clicked!");
}
});
frame.add(button);
frame.setSize(400, 300);
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
More Components
4. Using TextField and Label
import javax.swing.*;
frame.add(label);
frame.add(textField);
frame.setSize(400, 200);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
🧩 Layout Managers
5. Using FlowLayout
import javax.swing.*;
import java.awt.*;
frame.add(new JButton("1"));
frame.add(new JButton("2"));
frame.add(new JButton("3"));
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
✅ Check Box
🔘 Radio Button
🔽 Drop-down Box (ComboBox)
📋 List Box (JList)
⚠️Alert Box (JOptionPane)
Each example is minimal, functional, and can be copied directly into your IDE (like IntelliJ
or Eclipse).
frame.add(java);
frame.add(python);
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
frame.add(male);
frame.add(female);
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
frame.add(comboBox);
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
frame.add(list);
frame.setSize(300, 200);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
button.addActionListener(e -> {
JOptionPane.showMessageDialog(frame, "This is an alert box!",
"Alert", JOptionPane.WARNING_MESSAGE);
});
frame.add(button);
frame.setSize(350, 250);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Complete example
import javax.swing.*;
import java.awt.event.*;
// Get languages
message.append("Languages Known: ");
if (javaCB.isSelected()) message.append("Java ");
if (pythonCB.isSelected()) message.append("Python ");
message.append("\n");
// Gender
message.append("Gender: ");
if (maleRB.isSelected()) message.append("Male\n");
else if (femaleRB.isSelected()) message.append("Female\n");
// Country
message.append("Country:
").append(countryCombo.getSelectedItem()).append("\n");
// Course
message.append("Course: ").append(courseList.getSelectedValue()).append("\
n");
// Show alert
JOptionPane.showMessageDialog(frame, message.toString(), "Submitted Info",
JOptionPane.INFORMATION_MESSAGE);
}
});
frame.add(genderLabel);
frame.add(maleRB);
frame.add(femaleRB);
frame.add(countryLabel);
frame.add(countryCombo);
frame.add(courseLabel);
frame.add(listScroll);
frame.add(submitBtn);
import javax.swing.*;
import java.awt.event.*;
genderGroup.add(maleRB);
genderGroup.add(femaleRB);
submitBtn.addActionListener(new ActionListener() {
// Get languages
message.append("\n");
// Gender
message.append("Gender: ");
if (maleRB.isSelected()) message.append("Male\n");
// Country
message.append("Country: ").append(countryCombo.getSelectedItem()).append("\n");
// Course
message.append("Course: ").append(courseList.getSelectedValue()).append("\n");
// Show alert
});
frame.add(langLabel);
frame.add(javaCB);
frame.add(pythonCB);
frame.add(genderLabel);
frame.add(maleRB);
frame.add(femaleRB);
frame.add(countryLabel);
frame.add(countryCombo);
frame.add(courseLabel);
frame.add(listScroll);
frame.add(submitBtn);
frame.setSize(400, 450);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Calculator app
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
// Frame components
JFrame frame;
JTextField textField;
String operator;
public CalculatorSwingApp() {
textField.setEditable(false);
// Button labels
String[] buttonLabels = {
"7", "8", "9", "/",
};
button.addActionListener(new ButtonClickListener());
panel.add(button);
// Frame layout
frame.setLayout(new BorderLayout());
frame.add(textField, BorderLayout.NORTH);
frame.add(panel, BorderLayout.CENTER);
frame.setSize(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
textField.setText(textField.getText() + command);
} else if (command.equals("=")) {
try {
second = Double.parseDouble(textField.getText());
switch (operator) {
case "+":
break;
case "-":
break;
case "*":
break;
case "/":
if (second == 0) {
JOptionPane.showMessageDialog(frame, "Cannot divide by zero!");
textField.setText("");
return;
break;
textField.setText("" + result);
textField.setText("");
} else {
try {
first = Double.parseDouble(textField.getText());
operator = command;
textField.setText("");
textField.setText("");
}
}
new CalculatorSwingApp();
Example
Here's a simple Java Swing example that adds two numbers entered by the user and
displays the result when a button is clicked.
// Create components
JLabel label1 = new JLabel("Enter First Number:");
label1.setBounds(30, 40, 150, 30);
// Frame settings
frame.setSize(400, 300);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}