import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
/**
 *
 * @author Danielcod
 */
public class FaceJFrame extends javax.swing.JFrame {
    public FaceJFrame() {
        initComponents();
    }
    
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
        ExpressionGroup = new javax.swing.ButtonGroup();
        EyebrowGroup = new javax.swing.ButtonGroup();
        NoseGroup = new javax.swing.ButtonGroup();
        FacePanel = new javax.swing.JPanel();
        ButtonPanel = new javax.swing.JPanel();
        Happy = new javax.swing.JRadioButton();
        Sad = new javax.swing.JRadioButton();
        Neutral = new javax.swing.JRadioButton();
        Eyebrows = new javax.swing.JRadioButton();
        NoEyebrows = new javax.swing.JRadioButton();
        Nose = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        FacePanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        javax.swing.GroupLayout FacePanelLayout = new javax.swing.GroupLayout(FacePanel);
        FacePanel.setLayout(FacePanelLayout);
        FacePanelLayout.setHorizontalGroup(
            FacePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 428, Short.MAX_VALUE)
        );
        FacePanelLayout.setVerticalGroup(
            FacePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 317, Short.MAX_VALUE)
        );
        ExpressionGroup.add(Happy);
        Happy.setSelected(true);
        Happy.setText("Happy");
        Happy.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                HappyActionPerformed(evt);
            }
        });
        ExpressionGroup.add(Sad);
        Sad.setText("Sad");
        Sad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                SadActionPerformed(evt);
            }
        });
        ExpressionGroup.add(Neutral);
        Neutral.setText("Neutral");
        Neutral.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NeutralActionPerformed(evt);
            }
        });
        EyebrowGroup.add(Eyebrows);
        Eyebrows.setText("Eyebrows");
        Eyebrows.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                EyebrowsActionPerformed(evt);
            }
        });
        EyebrowGroup.add(NoEyebrows);
        NoEyebrows.setText("No Eyebrows");
        NoEyebrows.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NoEyebrowsActionPerformed(evt);
            }
        });
        NoseGroup.add(Nose);
        Nose.setText("Nose");
        Nose.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                NoseActionPerformed(evt);
            }
        });
        NoseGroup.add(jRadioButton2);
        jRadioButton2.setText("No Nose");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2ActionPerformed(evt);
            }
        });
        javax.swing.GroupLayout ButtonPanelLayout = new javax.swing.GroupLayout(ButtonPanel);
        ButtonPanel.setLayout(ButtonPanelLayout);
        ButtonPanelLayout.setHorizontalGroup(
            ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(ButtonPanelLayout.createSequentialGroup()
                .addGap(44, 44, 44)
                .addGroup(ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(Neutral)
                    .addGroup(ButtonPanelLayout.createSequentialGroup()
                        .addGroup(ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(Happy)
                            .addComponent(Sad))
                        .addGap(63, 63, 63)
                        .addGroup(ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(NoEyebrows)
                            .addComponent(Eyebrows))
                        .addGap(58, 58, 58)
                        .addGroup(ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(Nose)
                            .addComponent(jRadioButton2))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        ButtonPanelLayout.setVerticalGroup(
            ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, ButtonPanelLayout.createSequentialGroup()
                .addContainerGap(19, Short.MAX_VALUE)
                .addGroup(ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, ButtonPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(ButtonPanelLayout.createSequentialGroup()
                            .addComponent(Happy)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(Sad))
                        .addGroup(ButtonPanelLayout.createSequentialGroup()
                            .addComponent(Eyebrows)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(NoEyebrows)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, ButtonPanelLayout.createSequentialGroup()
                        .addComponent(Nose)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton2)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Neutral)
                .addContainerGap())
        );
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(ButtonPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createSequentialGroup()
                .addComponent(FacePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(FacePanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(ButtonPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(12, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        
    private void HappyActionPerformed(java.awt.event.ActionEvent evt) {                                      
        Graphics HappyGraphic = FacePanel.getGraphics();
        HappyGraphic.setColor(Color.white);
        HappyGraphic.fillRect(0, 0, FacePanel.getWidth(), FacePanel.getHeight());
        HappyGraphic.setColor(Color.black);
        
        HappyGraphic.drawOval(120, 20, 200, 275);
        HappyGraphic.drawOval(150, 100, 30, 40);
        HappyGraphic.drawOval(250, 100, 30, 40);
        HappyGraphic.drawArc(170, 170, 80, 60, 240, 90);
        
        
        FacePanel.paintComponents(HappyGraphic);
    }                                     
    private void NeutralActionPerformed(java.awt.event.ActionEvent evt) {                                        
        Graphics NeutralGraphic = FacePanel.getGraphics();
        NeutralGraphic.setColor(Color.white);     
        NeutralGraphic.fillRect(0, 0, FacePanel.getWidth(), FacePanel.getHeight());
        
        NeutralGraphic.setColor(Color.black);
        NeutralGraphic.drawOval(120, 20, 200, 275);
        NeutralGraphic.drawOval(150, 100, 30, 40);
        NeutralGraphic.drawOval(250, 100, 30, 40);
        NeutralGraphic.drawLine(170, 220, 240, 220);
    }                                       
    private void EyebrowsActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Graphics Eyebrows = FacePanel.getGraphics();
       
        Eyebrows.drawLine(150, 90, 180, 90);
        Eyebrows.drawLine(250, 90, 280, 90);
    }                                        
    private void NoEyebrowsActionPerformed(java.awt.event.ActionEvent evt) {                                           
        Graphics Eyebrows = FacePanel.getGraphics();
       
        Eyebrows.setColor(Color.white);
        
        Eyebrows.drawLine(150, 90, 180, 90);
        Eyebrows.drawLine(250, 90, 280, 90);
    }                                          
    private void NoseActionPerformed(java.awt.event.ActionEvent evt) {                                     
         Graphics Nose = FacePanel.getGraphics();
         
         Nose.setColor(Color.BLACK);
         Nose.drawOval(175, 175, 30, 20);
         Nose.fillOval(175, 175, 30, 20);
    }                                    
    private void SadActionPerformed(java.awt.event.ActionEvent evt) {                                    
        Graphics SadGraphic = FacePanel.getGraphics();
        
        SadGraphic.setColor(Color.white);
        SadGraphic.fillRect(0, 0, FacePanel.getWidth(), FacePanel.getHeight());
        
        SadGraphic.setColor(Color.black);
        SadGraphic.drawOval(120, 20, 200, 275);
        SadGraphic.drawOval(150, 100, 30, 40);
        SadGraphic.drawOval(250, 100, 30, 40);
        SadGraphic.drawArc(170, 210, 80, 60, -180,-180 );
    }                                   
    private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        Graphics Nose = FacePanel.getGraphics();
        
        Nose.setColor(Color.WHITE);
        Nose.drawOval(175, 175, 30, 20);
        Nose.fillOval(175, 175, 30, 20);
    }                                             
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FaceJFrame().setVisible(true);
            }
        });
        
       
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JPanel ButtonPanel;
    private javax.swing.ButtonGroup ExpressionGroup;
    private javax.swing.ButtonGroup EyebrowGroup;
    private javax.swing.JRadioButton Eyebrows;
    private javax.swing.JPanel FacePanel;
    private javax.swing.JRadioButton Happy;
    private javax.swing.JRadioButton Neutral;
    private javax.swing.JRadioButton NoEyebrows;
    private javax.swing.JRadioButton Nose;
    private javax.swing.ButtonGroup NoseGroup;
    private javax.swing.JRadioButton Sad;
    private javax.swing.JRadioButton jRadioButton2;
    // End of variables declaration                   
}

Face Display
Published:

Face Display

Published: