Professional Documents
Culture Documents
1.
package appi;
import javax.swing.*;
}
}
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
textArea = new JTextArea();
btn = new JButton("Click Me!");
/*btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
textArea.append("Hello\n");
});*/
add(textArea,BorderLayout.CENTER);
add(btn,BorderLayout.SOUTH);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
3.
package appi;
}
}
Custom Components
4.
package appi;
import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
5.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
textPanel = new TextPanel();
btn = new JButton("Click Me!");
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
textPanel.appendText("Hello\n");
});
add(textPanel,BorderLayout.CENTER);
add(btn,BorderLayout.SOUTH);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
Toolbar
6.
package appi;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
7.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
btn = new JButton("Click Me!");
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
textPanel.appendText("Hello\n");
});
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
add(btn,BorderLayout.SOUTH);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
package appi;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
9.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
toolbar.setTextPanel(textPanel);
btn = new JButton("Click Me!");
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
textPanel.appendText("Hello\n");
});
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
add(btn,BorderLayout.SOUTH);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
11.
package appi;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Toolbar extends JPanel implements ActionListener{
private JButton helloButton;
private JButton goodbyeButton;
private StringListener textListener;
public Toolbar(){
helloButton=new JButton("Hello");
goodbyeButton=new JButton("Goodbye");
goodbyeButton.addActionListener(this);
helloButton.addActionListener(this);
setLayout(new FlowLayout(FlowLayout.LEFT));
add(helloButton);
add(goodbyeButton);
};
public void setStringListener(StringListener listener){
textListener = listener;
}
public void actionPerformed(ActionEvent e) {
// System.out.println("A Button Has Been Clicked!");
JButton click = (JButton)e.getSource();
if (click == helloButton){
if (textListener != null){
textListener.stringEmitted("Hello \n");
}
}else if(click == goodbyeButton){
if (textListener != null){
textListener.stringEmitted("Goodbye \n");
}
}
}
}
12.
ackage appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
package appi;
import java.awt.Dimension;
import javax.swing.JPanel;
14.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
Setting Borders
15.
package appi;
import java.awt.Dimension;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.border.*;
public class FormPanel extends JPanel{
public FormPanel(){
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
}
}
16.
package appi;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
@Override
public void actionPerformed(ActionEvent e) {
// System.out.println("A Button Has Been Clicked!");
JButton click = (JButton)e.getSource();
if (click == helloButton){
if (textListener != null){
textListener.stringEmitted("Hello \n");
}
}else if(click == goodbyeButton){
if (textListener != null){
textListener.stringEmitted("Goodbye \n");
}
}
}
}
package appi;
import java.awt.Dimension;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
public class FormPanel extends JPanel{
private JLabel nameLabel;
private JLabel occupationLabel;
private JTextField namefield;
private JTextField occupationField;
private JButton okBtn;
public FormPanel(){
nameLabel = new JLabel("Name: ");
occupationLabel = new JLabel("Occupation: ");
namefield = new JTextField(10);
occupationField = new JTextField(10);
okBtn = new JButton();
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
}
}
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=0;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=1;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.weightx = 1;
gc.weighty = 1;
gc.gridx=1;
gc.gridy=2;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(okBtn, gc);
}
}
package appi;
import java.util.EventObject;
20.
package appi;
import java.util.EventListener;
21.
package appi;
import java.util.EventObject;
22.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=0;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=1;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//second row//
gc.weightx = 1;
gc.weighty = 1;
gc.gridx=1;
gc.gridy=2;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(okBtn, gc);
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
23.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame2(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
formPanel = new FormPanel();
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
formPanel.setFormListener(new FormListener(){
public void formEventOccured(FormEvent e){
String name = e.getName();
String occupation = e.getOccupation();
textPanel.appendText(name+": "+occupation+"\n");
}
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
List Box
24.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
public class FormPanel extends JPanel{
private JLabel nameLabel;
private JLabel occupationLabel;
private JTextField nameField;
private JTextField occupationField;
private JButton okBtn;
private FormListener formListener;
private JList ageList;
public FormPanel(){
nameLabel = new JLabel("Name: ");
occupationLabel = new JLabel("Occupation: ");
nameField = new JTextField(10);
occupationField = new JTextField(10);
ageList = new JList();
DefaultListModel ageModel = new DefaultListModel();
ageModel.addElement("Under 18");
ageModel.addElement("18 to 65");
ageModel.addElement("65 or over");
ageList.setModel(ageModel);
ageList.setPreferredSize(new Dimension(110,66));
ageList.setBorder(BorderFactory.createEtchedBorder());
ageList.setSelectedIndex(1);
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=0;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=1;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=1;
gc.gridy=2;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(ageList, gc);
//fourth row//
gc.weightx = 1;
gc.weighty = 1;
gc.gridx=1;
gc.gridy=3;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(okBtn, gc);
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
Work with Listbox Data
25.
package appi;
import java.util.EventObject;
26.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=0;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.gridy=1;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=1;
gc.gridy=2;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(ageList, gc);
//fourth row//
gc.weightx = 1;
gc.weighty = 1;
gc.gridx=1;
gc.gridy=3;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(okBtn, gc);
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
class AgeCategory{
private int id;
private String text;
public AgeCategory(int id, String text){
this.id = id;
this.text = text;
}
public String toString(){
return text;
}
27.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
formPanel = new FormPanel();
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
formPanel.setFormListener(new FormListener(){
public void formEventOccured(FormEvent e){
String name = e.getName();
String occupation = e.getOccupation();
int ageCat = e.getAgeCategory();
textPanel.appendText(name+": "+occupation+": "+ageCat+"\n");
}
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
Combo Box
28.
package appi;
import java.util.EventObject;
}
}
29.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
public FormPanel(){
nameLabel = new JLabel("Name: ");
occupationLabel = new JLabel("Occupation: ");
nameField = new JTextField(10);
occupationField = new JTextField(10);
ageList = new JList();
empCombo = new JComboBox();
//set up Listbox
DefaultListModel ageModel = new DefaultListModel();
ageModel.addElement(new AgeCategory(0,"Under 18"));
ageModel.addElement(new AgeCategory(1,"18 to 65"));
ageModel.addElement(new AgeCategory(2,"65 or over"));
ageList.setModel(ageModel);
ageList.setPreferredSize(new Dimension(110,66));
ageList.setBorder(BorderFactory.createEtchedBorder());
ageList.setSelectedIndex(1);
System.out.println(empCat);
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
layoutComponents();
}
public void layoutComponents(){
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.gridy=1;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Age: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(ageList, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Employment: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(empCombo, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty=1;
gc.gridx=1;
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
class AgeCategory{
private int id;
private String text;
public AgeCategory(int id, String text){
this.id = id;
this.text = text;
}
public String toString(){
return text;
}
30.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class MainFrame2 extends JFrame{
public MainFrame2(){
super("Window");
setLayout(new BorderLayout());
toolbar.setStringListener(new StringListener(){
@Override
textPanel.appendText(text);
});
formPanel.setFormListener(new FormListener(){
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
Check Box
31.
package appi;
import java.util.EventObject;
32.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.*;
public FormPanel(){
nameLabel = new JLabel("Name: ");
occupationLabel = new JLabel("Occupation: ");
nameField = new JTextField(100);
occupationField = new JTextField(100);
ageList = new JList();
empCombo = new JComboBox();
citizenCheck = new JCheckBox();
taxField = new JTextField(100);
taxLabel = new JLabel("Tax ID: ");
//set up tax ID
taxLabel.setEnabled(false);
taxField.setEnabled(false);
citizenCheck.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
boolean isTicked = citizenCheck.isSelected();
taxLabel.setEnabled(isTicked);
taxField.setEnabled(isTicked);
}
});
//set up Listbox
DefaultListModel ageModel = new DefaultListModel();
ageModel.addElement(new AgeCategory(0,"Under 18"));
ageModel.addElement(new AgeCategory(1,"18 to 65"));
ageModel.addElement(new AgeCategory(2,"65 or over"));
ageList.setModel(ageModel);
ageList.setPreferredSize(new Dimension(110,66));
ageList.setBorder(BorderFactory.createEtchedBorder());
ageList.setSelectedIndex(1);
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
layoutComponents();
}
public void layoutComponents(){
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.gridy=1;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Age: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(ageList, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Employment: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(empCombo, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Indonesian Citizen: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(citizenCheck, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(taxLabel, gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(taxField, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty=1;
gc.gridx=1;
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
class AgeCategory{
private int id;
private String text;
public AgeCategory(int id, String text){
this.id = id;
this.text = text;
}
public String toString(){
return text;
}
33.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class MainFrame extends JFrame{
private TextPanel textPanel;
private Toolbar toolbar;
private FormPanel formPanel;
public MainFrame(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
formPanel = new FormPanel();
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
formPanel.setFormListener(new FormListener(){
public void formEventOccured(FormEvent e){
String name = e.getName();
String occupation = e.getOccupation();
int ageCat = e.getAgeCategory();
String empCat = e.getEmploymentCategory();
textPanel.appendText(name+": "+occupation+": "+ageCat+":
"+empCat+"\n");
}
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
Radio Button
34.
package appi;
import java.util.EventObject;
35.
package appi;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.*;
public FormPanel(){
nameLabel = new JLabel("Name: ");
occupationLabel = new JLabel("Occupation: ");
nameField = new JTextField(100);
occupationField = new JTextField(100);
ageList = new JList();
empCombo = new JComboBox();
citizenCheck = new JCheckBox();
taxField = new JTextField(100);
taxLabel = new JLabel("Tax ID: ");
genderGroup.add(maleRadio);
genderGroup.add(femaleRadio);
//set up tax ID
taxLabel.setEnabled(false);
taxField.setEnabled(false);
citizenCheck.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
boolean isTicked = citizenCheck.isSelected();
taxLabel.setEnabled(isTicked);
taxField.setEnabled(isTicked);
}
});
//set up Listbox
DefaultListModel ageModel = new DefaultListModel();
ageModel.addElement(new AgeCategory(0,"Under 18"));
ageModel.addElement(new AgeCategory(1,"18 to 65"));
ageModel.addElement(new AgeCategory(2,"65 or over"));
ageList.setModel(ageModel);
ageList.setPreferredSize(new Dimension(110,66));
ageList.setBorder(BorderFactory.createEtchedBorder());
ageList.setSelectedIndex(1);
});
Dimension dim = getPreferredSize();
dim.width=250;
setPreferredSize(dim);
TitledBorder innerBorder = BorderFactory.createTitledBorder("Add
Person");
javax.swing.border.Border outerBorder =
BorderFactory.createEmptyBorder(5, 5, 5, 5);
setBorder(BorderFactory.createCompoundBorder(outerBorder,innerBorder));
layoutComponents();
}
public void layoutComponents(){
setLayout(new GridBagLayout());
GridBagConstraints gc = new GridBagConstraints();
//first row//
gc.gridy=1;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
//gc.fill=GridBagConstraints.NONE;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(nameLabel, gc);
gc.gridx=1;
gc.gridy=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(nameField, gc);
//second row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.1;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(occupationLabel, gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.LINE_START;
add(occupationField, gc);
//third row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Age: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(ageList, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Employment: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(empCombo, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(new JLabel("Indonesian Citizen: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(citizenCheck, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.FIRST_LINE_END;
add(taxLabel, gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(taxField, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.05;
gc.gridx=0;
gc.insets = new Insets(0,0,0,5);
gc.anchor = GridBagConstraints.LINE_END;
add(new JLabel("Gender: "), gc);
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(maleRadio, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty = 0.2;
gc.gridx=1;
gc.insets = new Insets(0,0,0,0);
gc.anchor = GridBagConstraints.FIRST_LINE_START;
add(femaleRadio, gc);
//next row//
gc.gridy++;
gc.weightx = 1;
gc.weighty=1;
gc.gridx=1;
}
public void setFormListener(FormListener listener){
this.formListener = listener;
}
}
class AgeCategory{
private int id;
private String text;
public AgeCategory(int id, String text){
this.id = id;
this.text = text;
}
public String toString(){
return text;
}
36.
package appi;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public MainFrame2(){
super("Window");
setLayout(new BorderLayout());
toolbar = new Toolbar();
textPanel = new TextPanel();
formPanel = new FormPanel();
toolbar.setStringListener(new StringListener(){
@Override
public void stringEmitted(String text) {
textPanel.appendText(text);
}
});
formPanel.setFormListener(new FormListener(){
public void formEventOccured(FormEvent e){
String name = e.getName();
String occupation = e.getOccupation();
int ageCat = e.getAgeCategory();
String empCat = e.getEmploymentCategory();
textPanel.appendText(name+": "+occupation+": "+ageCat+":
"+empCat+"\n");
System.out.println(e.getGender());
}
});
add(formPanel,BorderLayout.WEST);
add(toolbar, BorderLayout.NORTH);
add(textPanel,BorderLayout.CENTER);
setSize(600,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}