import
java.awt.*;
import
java.awt.event.*;
public
class
GeeksCheckboxGroupDemo {
private
Frame mainFrame;
private
Label headerLabel;
private
Label statusLabel;
private
Panel controlPanel;
public
GeeksCheckboxGroupDemo() {
prepareGUI();
}
private
void
prepareGUI() {
mainFrame =
new
Frame(
"GeeksforGeeks AWT Examples"
);
mainFrame.setSize(
400
,
400
);
mainFrame.setLayout(
new
GridLayout(
3
,
1
));
mainFrame.addWindowListener(
new
WindowAdapter() {
public
void
windowClosing(WindowEvent windowEvent) {
System.exit(
0
);
}
});
headerLabel =
new
Label();
headerLabel.setAlignment(Label.CENTER);
statusLabel =
new
Label();
statusLabel.setAlignment(Label.CENTER);
statusLabel.setSize(
350
,
100
);
controlPanel =
new
Panel();
controlPanel.setLayout(
new
FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(
true
);
}
private
void
showCheckboxGroupDemo() {
headerLabel.setText(
"Control in action: GeeksCheckboxGroup"
);
CheckboxGroup categoryGroup =
new
CheckboxGroup();
Checkbox chkJava =
new
Checkbox(
"Java"
, categoryGroup,
true
);
Checkbox chkPython =
new
Checkbox(
"Python"
, categoryGroup,
false
);
Checkbox chkCSharp =
new
Checkbox(
"C#"
, categoryGroup,
false
);
chkJava.addItemListener(getCheckboxItemListener(
"Java"
));
chkPython.addItemListener(getCheckboxItemListener(
"Python"
));
chkCSharp.addItemListener(getCheckboxItemListener(
"C#"
));
controlPanel.add(chkJava);
controlPanel.add(chkPython);
controlPanel.add(chkCSharp);
mainFrame.setVisible(
true
);
}
private
ItemListener getCheckboxItemListener(
final
String categoryName) {
return
new
ItemListener() {
public
void
itemStateChanged(ItemEvent e) {
if
(e.getStateChange() == ItemEvent.SELECTED) {
statusLabel.setText(categoryName +
" Checkbox: checked"
);
}
else
{
statusLabel.setText(categoryName +
" Checkbox: unchecked"
);
}
}
};
}
public
static
void
main(String[] args) {
GeeksCheckboxGroupDemo checkboxGroupDemo =
new
GeeksCheckboxGroupDemo();
checkboxGroupDemo.showCheckboxGroupDemo();
}
}