In: Computer Science
Create a UI that has a field in which to enter text, a field to display read-only text and a button. When the button is pressed, take the value of the text box and try to create a month object. If a number was entered, use the constructor that accepts an integer. If alphabetic characters were entered, use the constructor that accepts a string. If nothing is entered, use the no-argument constructor. If a valid month object is created, use the toString function on the month object to display info about the month. Otherwise, display an appropriate error message.
Create a UI with two drop-down lists, a button, and a field to display read-only text. One drop-down has the values 1-12. The other has the names of the months. When the button is pressed, create two-month objects using the appropriate constructors, then display if the months are equal, if month 1 > month 2 or if month 2 > month 1.
TWO SEPERATE USER INTERFACES.
THIS IS TO BE DONE USING JAVA
//Java code
import javax.swing.*;
public class Month {
    private final static String[] monthsName ={"January","February","March","April","May","June","July","August","September","October","November","December"};
    private String monthName;
    public  Month()
    {
        this.monthName = monthsName[0];
    }
    public Month(int monthNumber)
    {
        if(monthNumber>=1 && monthNumber<=12)
        {
            monthName = monthsName[monthNumber-1];
        }
        else
        {
            errorMessage("Invalid month name","MONTH NAME ERROR!");
            return;
        }
    }
    public Month(String monthName)
    {
        setMonthName(monthName);
    }
    public String getMonthName() {
        return monthName;
    }
    public void setMonthName(String monthName)
    {
        boolean isValid = false;
        for (int i = 0; i <monthsName.length ; i++) {
            if(monthsName[i].equalsIgnoreCase(monthName)) {
                isValid = true;
                this.monthName = monthsName[i];
            }
        }
        if(!isValid)
        {
            errorMessage("Invalid month name","MONTH NAME ERROR!");
            return;
        }
    }
    public static  void errorMessage(String message, String title)
    {
        JOptionPane.showMessageDialog(null,message,title,JOptionPane.ERROR_MESSAGE);
    }
}
//========================================
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
public class MonthGUI extends JFrame {
    JLabel lblPrompt;
    JTextField txtMonth;
    JButton btnDisplay;
    JLabel lblResult;
    public MonthGUI()
    {
        setTitle("Month GUI");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        setSize(400,150);
        setVisible(true);
        lblPrompt = new JLabel("Enter month");
        txtMonth = new JTextField(10);
        btnDisplay = new JButton("Display Month");
        lblResult = new JLabel();
        //Add all components to frame
        add(lblPrompt);
        add(txtMonth);
        add(btnDisplay);
        add(lblResult);
        //add action listener to button
        btnDisplay.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //Month object
                Month month;
                String text = txtMonth.getText();
                if(text.equals(""))
                {
                    month = new Month();
                    lblResult.setText("Month is "+month.getMonthName());
                }
                else if(text.matches("[0-9]+"))
                {
                    month = new Month(Integer.parseInt(text));
                    lblResult.setText("Month is "+month.getMonthName());
                }
                else
                {
                    month = new Month(text);
                    lblResult.setText("Month is "+month.getMonthName());
                }
            }
        });
    }
    public static void main(String[] args) throws InvocationTargetException, InterruptedException {
        SwingUtilities.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                new MonthGUI();
            }
        });
    }
}
//Output

//Java code 2
import javax.swing.*;
public class Month {
    private final static String[] monthsName ={"January","February","March","April","May","June","July","August","September","October","November","December"};
    private String monthName;
    public  Month()
    {
        this.monthName = monthsName[0];
    }
    public Month(int monthNumber)
    {
        if(monthNumber>=1 && monthNumber<=12)
        {
            monthName = monthsName[monthNumber-1];
        }
        else
        {
            errorMessage("Invalid month name","MONTH NAME ERROR!");
            return;
        }
    }
    public Month(String monthName)
    {
        setMonthName(monthName);
    }
    public String getMonthName() {
        return monthName;
    }
    public void setMonthName(String monthName)
    {
        boolean isValid = false;
        for (int i = 0; i <monthsName.length ; i++) {
            if(monthsName[i].equalsIgnoreCase(monthName)) {
                isValid = true;
                this.monthName = monthsName[i];
            }
        }
        if(!isValid)
        {
            errorMessage("Invalid month name","MONTH NAME ERROR!");
            return;
        }
    }
    public int getIndex(String month)
    {
        for (int i = 0; i <monthsName.length ; i++) {
            if(monthsName[i].equalsIgnoreCase(month))
                return i;
        }
        return 0;
    }
    public static  void errorMessage(String message, String title)
    {
        JOptionPane.showMessageDialog(null,message,title,JOptionPane.ERROR_MESSAGE);
    }
}
//=====================================
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
public class MonthGUI extends JFrame {
    JComboBox<Integer>cmbMonthNumbers;
    JComboBox<String>cmbMonthName;
    JButton btnDisplay;
    JLabel lblResult;
    Integer[]monthsNumber = {1,2,3,4,5,6,7,8,9,10,11,12};
    String[] monthsName ={"January","February","March","April","May","June","July","August","September","October","November","December"};
    public MonthGUI()
    {
        setTitle("Month GUI");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        setSize(400,150);
        setVisible(true);
        cmbMonthNumbers = new JComboBox<>();
        cmbMonthNumbers.setModel(new DefaultComboBoxModel<Integer>(monthsNumber));
        cmbMonthName = new JComboBox<>();
        cmbMonthName.setModel(new DefaultComboBoxModel<>(monthsName));
        btnDisplay = new JButton("Display Month");
        lblResult = new JLabel();
        //Add all components to frame
        add(cmbMonthName);
        add(cmbMonthNumbers);
        add(btnDisplay);
        add(lblResult);
        //add action listener to button
        btnDisplay.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //Month object
                Month month,month1;
                String text1 = cmbMonthName.getSelectedItem().toString();
                String text2  = cmbMonthNumbers.getSelectedItem().toString();
                if(text1.equals(""))
                {
                    month = new Month();
                }
                else if(text1.matches("[0-9]+"))
                {
                    month = new Month(Integer.parseInt(text1));
                }
                else
                {
                    month = new Month(text1);
                }
                if(text2.equals(""))
                {
                    month1 = new Month();
                }
                else if(text2.matches("[0-9]+"))
                {
                    month1 = new Month(Integer.parseInt(text2));
                }
                else
                {
                    month1 = new Month(text2);
                }
                if(month.getIndex(month.getMonthName())> month1.getIndex(month1.getMonthName()))
                {
                    lblResult.setText("Month1 is greater than Month2");
                }
                else  if(month.getIndex(month.getMonthName())< month1.getIndex(month1.getMonthName()))
                {
                    lblResult.setText("Month1 is smaller than Month2");
                }
                else
                {
                    lblResult.setText("Month1 and Month2 are equal.");
                }
            }
        });
    }
    public static void main(String[] args) throws InvocationTargetException, InterruptedException {
        SwingUtilities.invokeAndWait(new Runnable() {
            @Override
            public void run() {
                new MonthGUI();
            }
        });
    }
}
//Output

//If you need any help regarding this solution ......... please leave a comment ........ thanks