Thursday, July 4, 2013

Calculate your BOD


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = ""
        Dim strYear() As String = {"Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snack", "Horse", "Goat", "Monkey", "Chicken", "Dog", "Pig"}
        Dim strDOB As String = MaskedTextBox1.Text
        Dim intAge As Integer = Math.Floor(DateDiff(DateInterval.Month, DateValue(strDOB), Now()) / 12)
        Label1.Text = "Age : " & intAge

        Dim thisDate1 As Date = MaskedTextBox1.Text
        Label4.Text = "Date is " + thisDate1.ToString("MMMM dd, yyyy") + "."

        Dim value1 As String = ""
        Dim y As Integer = thisDate1.ToString("yyyy")
        Dim x As Integer = (1901 - y) Mod 12
        If x = 1 Or x = -11 Then
            value1 = strYear(0)
        ElseIf x = 0 Then
            value1 = strYear(1)
        ElseIf x = 11 Or x = -1 Then
            value1 = strYear(2)
        ElseIf x = 10 Or x = -2 Then
            value1 = strYear(3)
        ElseIf x = 9 Or x = -3 Then
            value1 = strYear(4)
        ElseIf x = 8 Or x = -4 Then
            value1 = strYear(5)
        ElseIf x = 7 Or x = -5 Then
            value1 = strYear(6)
        ElseIf x = 6 Or x = -6 Then
            value1 = strYear(7)
        ElseIf x = 5 Or x = -7 Then
            value1 = strYear(8)
        ElseIf x = 4 Or x = -8 Then
            value1 = strYear(9)
        ElseIf x = 3 Or x = -9 Then
            value1 = strYear(10)
        Else
            If x = 2 Or x = -10 Then
                value1 = strYear(11)
            End If
        End If

        Label1.Text = "Date is " + thisDate1.ToString("MMMM dddd") + " " + value1 + " Year."
    End Sub
End Class

Tuesday, June 18, 2013

Create your own download manager by VB.net


Imports System.Net

Public Class Form1
    
Public WithEvents Download As New WebClient
    
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
        FolderBrowserDialog1.ShowDialog()
        LbSaveAddress.Text = FolderBrowserDialog1.SelectedPath
        Download = New WebClient
        Download.DownloadFileAsync(New Uri(txtURL.Text), LbSaveAddress.Text + "\" + txtSaveFileName.Text)

    End Sub

    Private Sub Download_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles Download.DownloadProgressChanged
        Button1.Text = "Downloading"
        ProgressBar1.Value = e.ProgressPercentage
        Label2.Text = e.ProgressPercentage & "%"
    End Sub

    Private Sub txtURL_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles txtURL.MouseDown
        txtSaveFileName.Text = "Default.exe"
    End Sub
End Class


Monday, June 17, 2013

Create Easy Print by VB.net




Public Class FrmEasyPrint

    Private Sub cmdFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFont.Click
        Dim font_dialog As New FontDialog
        If font_dialog.ShowDialog() = DialogResult.OK Then
            TextBox1.Font = font_dialog.Font
        End If
    End Sub

    Private Sub cmdPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrint.Click
        If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            PrintDocument1.Print()
        End If
    End Sub

    Private Sub cmdPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrintPreview.Click
        PrintPreviewDialog1.Document = PrintDocument1
        PrintPreviewDialog1.ShowDialog()
    End Sub

    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim FontText As Font
        FontText = TextBox1.Font
        e.Graphics.DrawString(TextBox1.Text, FontText, New SolidBrush(Color.Black), 10, 10)
    End Sub
End Class

Create your own Email sending by VB.net



Imports System.Net.Mail
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim EmailMessage As New MailMessage()
        Try
            EmailMessage.From = New MailAddress(txtFrom.Text)
            EmailMessage.To.Add(txtTo.Text)
            EmailMessage.Subject = txtSub.Text
            EmailMessage.Body = txtMessage.Text
            Dim SMTP As New SmtpClient("smtp.gmail.com")
            SMTP.Port = 587
            SMTP.EnableSsl = True
            SMTP.Credentials = New System.Net.NetworkCredential(txtFrom.Text, "YourEmailPassword")
            SMTP.Send(EmailMessage)
            MsgBox("Message has been send to," & txtTo.Text & " Successfully!")
        Catch ex As Exception
            MsgBox("Sending Fail")
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtFrom.Text = "YourEmail"
    End Sub
End Class

Create Notepad by VB.net



Public Class Form1

    Private Sub NewToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewToolStripMenuItem.Click
        RichTextBox1.Clear()
    End Sub

    Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
        Try
            Dim dlg As OpenFileDialog = New OpenFileDialog
            dlg.Title = "Open"
            dlg.Filter = "Rich Text Files (*.rtf)|*.rtf"
            If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
                RichTextBox1.LoadFile(dlg.FileName)
            End If
        Catch ex As Exception
            MsgBox("Open File Error")
        End Try
    End Sub

    Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click
        Try
            Dim dlg As SaveFileDialog = New SaveFileDialog
            dlg.Title = "Save"
            dlg.Filter = "Rich Text Files (*.rtf)|*.rtf"
            If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
                RichTextBox1.SaveFile(dlg.FileName, RichTextBoxStreamType.RichText)
            End If
        Catch ex As Exception
            MsgBox("Error to save file!")
        End Try
    End Sub

    Private Sub UndoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UndoToolStripMenuItem.Click
        RichTextBox1.Undo()
    End Sub

    Private Sub RedoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedoToolStripMenuItem.Click
        RichTextBox1.Redo()
    End Sub

    Private Sub CutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CutToolStripMenuItem.Click
        RichTextBox1.Cut()
    End Sub

    Private Sub CopyToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopyToolStripMenuItem.Click
        RichTextBox1.Copy()
    End Sub

    Private Sub PasteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PasteToolStripMenuItem.Click
        RichTextBox1.Paste()
    End Sub

    Private Sub ClearToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearToolStripMenuItem.Click
        RichTextBox1.Clear()
    End Sub

    Private Sub SelectAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectAllToolStripMenuItem.Click
        RichTextBox1.SelectAll()
    End Sub

    Private Sub FontToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FontToolStripMenuItem.Click
        Try
            Dim dlg As FontDialog = New FontDialog
            dlg.Font = RichTextBox1.Font
            If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
                RichTextBox1.Font = dlg.Font
            End If
        Catch ex As Exception
            MsgBox("Erro Font")
        End Try
    End Sub

    Private Sub ColourToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColourToolStripMenuItem.Click
        Try
            Dim dlg As ColorDialog = New ColorDialog
            dlg.Color = RichTextBox1.ForeColor
            If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
                RichTextBox1.ForeColor = dlg.Color
            End If
        Catch ex As Exception
            MsgBox("Erro Color")
        End Try
    End Sub
End Class

Event sharing IT experiences


Register: https://www.facebook.com/events/144561725733472/?ref=2
Website: http://www.cita.asia/en/

Monday, June 3, 2013

Create Void Recorder with vb.net



Public Class Form1
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstyCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 1000
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label3.Text = "0.0"
        Button1.Enabled = False
        Button2.Enabled = True
        mciSendString("open new Type waveaudio Alias recsound", "", 0, 0)
        mciSendString("record recsound", "", 0, 0)
        Timer1.Enabled = True
        Label1.Text = "កំពុងថតសម្លេង...!"
        Label1.Visible = True
        Label2.Text = "File Location: "
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Button1.Enabled = True
        Button2.Enabled = False

        Label1.Text = "ការថតថម្លេងបានបញ្ចប់"
        SaveFileDialog1.Title = "Save File Audio"
        SaveFileDialog1.FileName = ""
        SaveFileDialog1.Filter = "File MP3|*.mp3|File Wave|*.wav"
        SaveFileDialog1.FilterIndex = 2
        SaveFileDialog1.OverwritePrompt = True
        SaveFileDialog1.ShowDialog()

        mciSendString("save recsound " & SaveFileDialog1.FileName & "", "", 0, 0)
        mciSendString("close recsound", "", 0, 0)
        Timer1.Enabled = False
        MsgBox("File Created: " & SaveFileDialog1.FileName & "", MsgBoxStyle.OkOnly, "Success")
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label3.Text += 0.01
    End Sub

    Private Sub AxWindowsMediaPlayer1_ClickEvent(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_ClickEvent) Handles AxWindowsMediaPlayer1.ClickEvent
        AxWindowsMediaPlayer1.URL = SaveFileDialog1.FileName
        AxWindowsMediaPlayer1.Ctlcontrols.play()
        Label2.Text += SaveFileDialog1.FileName
        Label1.Text = "កំពុងតែចាក់ស្តាប់"
    End Sub
End Class

Sunday, June 2, 2013

Create you own shutdown management control system


Public Class Form2
    Dim i, j As Integer
    Dim TM As Date
    Private Declare Function LockWorkStation Lib "user32.dll" () As Long
    Private Declare Function ShutDownDialog Lib "shell32.all" Alias "#60" (ByVal any As Long)

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Text = "Shutdown Manager - " + TimeOfDay
        Me.Label3.Text = "ពេលវេលាបច្ចុប្បន្ន៖ " + TimeOfDay
    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer2.Interval = 10000
        Timer1.Enabled = True

        For Me.i = 0 To 23 Step 1
            cboHourse.Items.Add(i)
        Next

        For Me.j = 0 To 60 Step 1
            cboMinutes.Items.Add(j)
        Next
    End Sub

    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
        cmdStart.Text = "កំពុងដំណើរការ"
        If Val(cboHourse.Text) > 0 Or Val(cboMinutes.Text) > 0 Then
            TM = Now.AddMinutes(Val(cboHourse.Text) * 60 + Val(cboMinutes.Text))
            Timer2.Enabled = True
            lblStatuse.Text = "កំណត់ពេលវេលាគឺ៖ " + TM

        Else
            lblStatuse.Text = "សូមបញ្ចូលពេលវេលាជាមុន"
        End If
    End Sub

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        If Now > TM Then
            If RdoLogOff.Checked = True Then
                Shell("shutdown -l")
            End If

            If RdoRestart.Checked = True Then
                Shell("shutdown -r")
            End If

            If RdoShutDown.Checked = True Then
                Shell("shutdown -s")
            End If

            If RdoLockPC.Checked = True Then
                LockWorkStation()
            End If

            If RdoHybernate.Checked = True Then
                Shell("shutdown -h")
            End If

            Timer1.Enabled = False
            Timer2.Enabled = False
        End If
    End Sub

    Private Sub cmdCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancel.Click
        cmdStart.Text = "Start"
        Timer2.Enabled = False
        lblStatuse.Text = "ប្រព័ន្ធអាចចាប់ផ្តើមជាថ្មីបាន!"
    End Sub

    Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click
        End
    End Sub
End Class

Saturday, June 1, 2013

Create Stop Watch with Vb.net

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Text = "ចាប់ផ្តើម" Then
            Timer1.Enabled = True
            Button1.Text = "ផ្អាក"
            Button3.Enabled = False
        Else
            Button1.Text = "ផ្អាក"
            Timer1.Enabled = False
            Button1.Text = "ចាប់ផ្តើម"
            Button3.Enabled = True
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 1
        Button1.Text = "ចាប់ផ្តើម"
        Button3.Text = "សារដើម"
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Timer1.Enabled = False
        Label1.Text = "0.0"
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Label1.Text + 0.01
    End Sub
End Class


Friday, May 31, 2013

Create a Date and Time using Cambodia Time


Imports System.Globalization
Public Class Form1
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = DateTime.Now.ToString("dddd 'ទី'dd 'ខែ'MMMM 'និងម៉ោង'​h:mm:ss tt 'ត្រូវនឹងពេលវេលានៅភ្នំពេញណាបាទ!'", CultureInfo.CreateSpecificCulture("km-KH"))
        Me.Label2.Text = TimeOfDay
    End Sub
End Class

Created by RUPP LKT :D 

VB.net with Listview Alarm Clock




Public Class Form1

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Label1.Text = TimeOfDay

        For Each item As ListViewItem In Me.ListView1.Items
            If item.SubItems(0).Text = Me.Label1.Text Then
                MsgBox(item.SubItems(1).Text)
            End If
        Next
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Allow the user to remove the alarm
        If Me.ListView1.SelectedItems.Count > Nothing Then
            Me.ListView1.SelectedItems(0).Remove()
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myAlarmTime As String
        Dim myAlarmName As String
        myAlarmTime = InputBox("Please add the time of the alarm")
        myAlarmName = InputBox("Please select a name")

        Dim lvitem As ListViewItem
        lvitem = Me.ListView1.Items.Add(myAlarmTime)
        lvitem.SubItems.Add(myAlarmName)

    End Sub
End Class

This code was copy right by RUPP Student

Tuesday, May 28, 2013

Convert Number to Word with Java



import java.util.Scanner;

public class NumberToWord {
public static final String[] DIGITS = {"One", "Two", "Three", "Four", "Five","Six", "Seven", "Eight", "Nine"};
public static final String[] TENS = {null, "Twenty", "Thirty", "Forty", "Fifty","Sixty", "Seventy", "Eighty", "Ninety"};
public static final String[] TEENS = {"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen","Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};


public static String wordifyNumber(int number) { // use for every grouping of 10^3 - thousands, millions, billions, etc.
StringBuilder sb = new StringBuilder();
int x = number / 100;
if (x > 0) // something in hundreds column
sb.append(DIGITS[x - 1] + " hundred");
x = number % 100;
int tens = x / 10;
if (tens > 0) { // something in tens column
if (sb.length() > 0)
sb.append(" ");
if (tens > 1)
sb.append(TENS[tens - 1]);
else {
sb.append(TEENS[x - 10]);
number = 0; // TEENS accounts for tens + digit; done!
}
}
x = number % 10;
if (x > 0) { // something in digits column
if (sb.length() > 0) {
if (tens >= 2) // twenty-, thirty-, etc.
sb.append("-");
else
sb.append(" ");
}
sb.append(DIGITS[x - 1]);
}
return sb.toString();
}


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Enter a number (or -1 to quit): ");
int number = scanner.nextInt();
if (number == -1)
break;
else if (number == 0)
System.out.println("Number = zero");


else {
System.out.print("Your number "+number+" = ");
if (number > 999) {
System.out.print(wordifyNumber(number / 1000) + " thousand");
number = number % 1000;
System.out.print(number > 99 ? ", " : " ");
}
System.out.println(wordifyNumber(number));
}
} //end while
System.out.println("Done.");
}
}

Show Date Of Birth with Java


import java.util.*;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

class test{
public static void main (String[] args) {
Calendar cal=Calendar.getInstance();
Date date1;

Scanner sc=new Scanner(System.in);
System.out.print("Enter day of birth: ");
int d=sc.nextInt();
System.out.print("Enter month of birth: ");
int m=sc.nextInt();
System.out.print("Enter year of birth: ");
int y=sc.nextInt();

cal.set(y,m,d);

String[] strDays = new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thusday", "Friday", "Saturday"};
String[] strMonths = new String[]{"JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY","AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER","DECEMBER"};
String[] strYears= new String[]{"Rat","Ox","Tiger","Rabbit","Dragon","Snack","Horse","Goat","Monkey","Chicken","Dog","Pig"};

if (m==1) 
date1 = (new GregorianCalendar(y,Calendar.JANUARY, d)).getTime();
else if (m==2)
date1 = (new GregorianCalendar(y,Calendar.FEBRUARY, d)).getTime();
else if (m==3)
date1 = (new GregorianCalendar(y,Calendar.MARCH, d)).getTime();
else if(m==4)
date1 = (new GregorianCalendar(y,Calendar.APRIL, d)).getTime(); 
else if (m==5)
date1 = (new GregorianCalendar(y,Calendar.MAY, d)).getTime(); 
else if (m==6)
date1 = (new GregorianCalendar(y,Calendar.JUNE, d)).getTime();
else if (m==7)
date1 = (new GregorianCalendar(y,Calendar.JULY, d)).getTime();
else if (m==8)
date1 = (new GregorianCalendar(y,Calendar.AUGUST, d)).getTime();
else if (m==9)
date1 = (new GregorianCalendar(y,Calendar.SEPTEMBER, d)).getTime();
else if (m==10)
date1 = (new GregorianCalendar(y,Calendar.OCTOBER, d)).getTime();
else if (m==11)
date1 = (new GregorianCalendar(y,Calendar.NOVEMBER, d)).getTime();
else
date1 = (new GregorianCalendar(y,Calendar.DECEMBER, d)).getTime();

        System.out.println ("\nYour Birth Date is "+d+"/"+m+"/"+y+" = "+new SimpleDateFormat("EEEE").format(date1)+" - "+strMonths[cal.get(Calendar.MONTH)-1]+" - "+strYears[cal.get(Calendar.YEAR)%12-4]+" Year.");

}
}


Create Calculator with Java Swing

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;


public class Calculator extends JFrame implements ActionListener{
// Variables
final int MAX_INPUT_LENGTH = 20;
final int INPUT_MODE = 0;
final int RESULT_MODE = 1;
final int ERROR_MODE = 2;
int displayMode;


boolean clearOnNextDigit, percent;
double lastNumber;
String lastOperator;


private JMenu jmenuFile, jmenuHelp;
private JMenuItem jmenuitemExit, jmenuitemAbout;

private JLabel jlbOutput;
private JButton jbnButtons[];
private JPanel jplMaster, jplBackSpace, jplControl;

/*
* Font(String name, int style, int size)
      Creates a new Font from the specified name, style and point size.
*/

Font f12 = new Font("Times New Roman", 0, 12);
Font f121 = new Font("Times New Roman", 1, 12);

// Constructor 
public Calculator() 
{
/* Set Up the JMenuBar.
* Have Provided All JMenu's with Mnemonics
* Have Provided some JMenuItem components with Keyboard Accelerators
*/ 

jmenuFile = new JMenu("File");
jmenuFile.setFont(f121);
jmenuFile.setMnemonic(KeyEvent.VK_F);

jmenuitemExit = new JMenuItem("Exit");
jmenuitemExit.setFont(f12);
jmenuitemExit.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_X, 
ActionEvent.CTRL_MASK));
jmenuFile.add(jmenuitemExit);


jmenuHelp = new JMenu("Help");
jmenuHelp.setFont(f121);
jmenuHelp.setMnemonic(KeyEvent.VK_H);


jmenuitemAbout = new JMenuItem("About Calculator");
jmenuitemAbout.setFont(f12);
jmenuHelp.add(jmenuitemAbout);

JMenuBar mb = new JMenuBar();
mb.add(jmenuFile);
mb.add(jmenuHelp);
setJMenuBar(mb);

//Set frame layout manager


setBackground(Color.gray);


jplMaster = new JPanel();


jlbOutput = new JLabel("0");
jlbOutput.setHorizontalTextPosition(JLabel.RIGHT);
jlbOutput.setBackground(Color.WHITE);
jlbOutput.setOpaque(true);

// Add components to frame
getContentPane().add(jlbOutput, BorderLayout.NORTH);


jbnButtons = new JButton[23];
// GridLayout(int rows, int cols, int hgap, int vgap) 


JPanel jplButtons = new JPanel(); // container for Jbuttons


// Create numeric Jbuttons
for (int i=0; i<=9; i++)
{
// set each Jbutton label to the value of index
jbnButtons[i] = new JButton(String.valueOf(i));
}


// Create operator Jbuttons
jbnButtons[10] = new JButton("+/-");
jbnButtons[11] = new JButton(".");
jbnButtons[12] = new JButton("=");
jbnButtons[13] = new JButton("/");
jbnButtons[14] = new JButton("*");
jbnButtons[15] = new JButton("-");
jbnButtons[16] = new JButton("+");
jbnButtons[17] = new JButton("sqrt");
jbnButtons[18] = new JButton("1/x");
jbnButtons[19] = new JButton("%");

jplBackSpace = new JPanel();
jplBackSpace.setLayout(new GridLayout(1, 1, 2, 2));


jbnButtons[20] = new JButton("Backspace");
jplBackSpace.add(jbnButtons[20]);


jplControl = new JPanel();
jplControl.setLayout(new GridLayout(1, 2, 2 ,2));


jbnButtons[21] = new JButton(" CE ");
jbnButtons[22] = new JButton("C");


jplControl.add(jbnButtons[21]);
jplControl.add(jbnButtons[22]);


// Setting all Numbered JButton's to Blue. The rest to Red
for (int i=0; i<jbnButtons.length; i++) {
jbnButtons[i].setFont(f12);


if (i<10)
jbnButtons[i].setForeground(Color.blue);

else
jbnButtons[i].setForeground(Color.red);
}

// Set panel layout manager for a 4 by 5 grid
jplButtons.setLayout(new GridLayout(4, 5, 2, 2));

//Add buttons to keypad panel starting at top left
// First row
for(int i=7; i<=9; i++) {
jplButtons.add(jbnButtons[i]);
}

// add button / and sqrt
jplButtons.add(jbnButtons[13]);
jplButtons.add(jbnButtons[17]);

// Second row
for(int i=4; i<=6; i++)
{
jplButtons.add(jbnButtons[i]);
}

// add button * and x^2
jplButtons.add(jbnButtons[14]);
jplButtons.add(jbnButtons[18]);


// Third row
for( int i=1; i<=3; i++)
{
jplButtons.add(jbnButtons[i]);
}

//adds button - and %
jplButtons.add(jbnButtons[15]);
jplButtons.add(jbnButtons[19]);

//Fourth Row
// add 0, +/-, ., +, and =
jplButtons.add(jbnButtons[0]);
jplButtons.add(jbnButtons[10]);
jplButtons.add(jbnButtons[11]);
jplButtons.add(jbnButtons[16]);
jplButtons.add(jbnButtons[12]);

jplMaster.setLayout(new BorderLayout());
jplMaster.add(jplBackSpace, BorderLayout.WEST);
jplMaster.add(jplControl, BorderLayout.EAST);
jplMaster.add(jplButtons, BorderLayout.SOUTH);


// Add components to frame
getContentPane().add(jplMaster, BorderLayout.SOUTH);
requestFocus();

//activate ActionListener
for (int i=0; i<jbnButtons.length; i++){
jbnButtons[i].addActionListener(this);
}

jmenuitemAbout.addActionListener(this);
jmenuitemExit.addActionListener(this);


clearAll();


//add WindowListener for closing frame and ending program
addWindowListener(new WindowAdapter() {


public void windowClosed(WindowEvent e)
{
System.exit(0);
}
}
);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} //End of Contructor Calculator


// Perform action
public void actionPerformed(ActionEvent e){
double result = 0;

if(e.getSource() == jmenuitemAbout){
JDialog dlgAbout = new CustomABOUTDialog(this, "About Java Swing Calculator", true);
dlgAbout.setVisible(true);
}else if(e.getSource() == jmenuitemExit){
System.exit(0);
}


// Search for the button pressed until end of array or key found
for (int i=0; i<jbnButtons.length; i++)
{
if(e.getSource() == jbnButtons[i])
{
switch(i)
{
case 0:
addDigitToDisplay(i);
break;


case 1:
addDigitToDisplay(i);
break;


case 2:
addDigitToDisplay(i);
break;


case 3:
addDigitToDisplay(i);
break;


case 4:
addDigitToDisplay(i);
break;


case 5:
addDigitToDisplay(i);
break;


case 6:
addDigitToDisplay(i);
break;


case 7:
addDigitToDisplay(i);
break;


case 8:
addDigitToDisplay(i);
break;


case 9:
addDigitToDisplay(i);
break;


case 10: // +/-
processSignChange();
break;


case 11: // decimal point
addDecimalPoint();
break;


case 12: // =
processEquals();
break;


case 13: // divide
processOperator("/");
break;


case 14: // *
processOperator("*");
break;


case 15: // -
processOperator("-");
break;


case 16: // +
processOperator("+");
break;


case 17: // sqrt
if (displayMode != ERROR_MODE)
{
try
{
if (getDisplayString().indexOf("-") == 0)
displayError("Invalid input for function!");


result = Math.sqrt(getNumberInDisplay());
displayResult(result);
}


catch(Exception ex)
{
displayError("Invalid input for function!");
displayMode = ERROR_MODE;
}
}
break;


case 18: // 1/x
if (displayMode != ERROR_MODE){
try
{
if (getNumberInDisplay() == 0)
displayError("Cannot divide by zero!");

result = 1 / getNumberInDisplay();
displayResult(result);
}

catch(Exception ex) {
displayError("Cannot divide by zero!");
displayMode = ERROR_MODE;
}
}
break;


case 19: // %
if (displayMode != ERROR_MODE){
try {
result = getNumberInDisplay() / 100;
displayResult(result);
}

catch(Exception ex) {
displayError("Invalid input for function!");
displayMode = ERROR_MODE;
}
}
break;


case 20: // backspace
if (displayMode != ERROR_MODE){
setDisplayString(getDisplayString().substring(0,
getDisplayString().length() - 1));

if (getDisplayString().length() < 1)
setDisplayString("0");
}
break;


case 21: // CE
clearExisting();
break;


case 22: // C
clearAll();
break;
}
}
}
}


void setDisplayString(String s){
jlbOutput.setText(s);
}


String getDisplayString (){
return jlbOutput.getText();
}


void addDigitToDisplay(int digit){
if (clearOnNextDigit)
setDisplayString("");


String inputString = getDisplayString();

if (inputString.indexOf("0") == 0){
inputString = inputString.substring(1);
}


if ((!inputString.equals("0") || digit > 0)  && inputString.length() < MAX_INPUT_LENGTH){
setDisplayString(inputString + digit);
}


displayMode = INPUT_MODE;
clearOnNextDigit = false;
}


void addDecimalPoint(){
displayMode = INPUT_MODE;


if (clearOnNextDigit)
setDisplayString("");


String inputString = getDisplayString();

// If the input string already contains a decimal point, don't
//  do anything to it.
if (inputString.indexOf(".") < 0)
setDisplayString(new String(inputString + "."));
}


void processSignChange(){
if (displayMode == INPUT_MODE)
{
String input = getDisplayString();


if (input.length() > 0 && !input.equals("0"))
{
if (input.indexOf("-") == 0)
setDisplayString(input.substring(1));


else
setDisplayString("-" + input);
}

}


else if (displayMode == RESULT_MODE)
{
double numberInDisplay = getNumberInDisplay();

if (numberInDisplay != 0)
displayResult(-numberInDisplay);
}
}


void clearAll() {
setDisplayString("0");
lastOperator = "0";
lastNumber = 0;
displayMode = INPUT_MODE;
clearOnNextDigit = true;
}


void clearExisting(){
setDisplayString("0");
clearOnNextDigit = true;
displayMode = INPUT_MODE;
}


double getNumberInDisplay() {
String input = jlbOutput.getText();
return Double.parseDouble(input);
}


void processOperator(String op) {
if (displayMode != ERROR_MODE)
{
double numberInDisplay = getNumberInDisplay();


if (!lastOperator.equals("0"))
{
try
{
double result = processLastOperator();
displayResult(result);
lastNumber = result;
}


catch (DivideByZeroException e)
{
}
}

else
{
lastNumber = numberInDisplay;
}

clearOnNextDigit = true;
lastOperator = op;
}
}


void processEquals(){
double result = 0;


if (displayMode != ERROR_MODE){
try
{
result = processLastOperator();
displayResult(result);
}

catch (DivideByZeroException e) {
displayError("Cannot divide by zero!");
}


lastOperator = "0";
}
}


double processLastOperator() throws DivideByZeroException {
double result = 0;
double numberInDisplay = getNumberInDisplay();


if (lastOperator.equals("/"))
{
if (numberInDisplay == 0)
throw (new DivideByZeroException());


result = lastNumber / numberInDisplay;
}

if (lastOperator.equals("*"))
result = lastNumber * numberInDisplay;


if (lastOperator.equals("-"))
result = lastNumber - numberInDisplay;


if (lastOperator.equals("+"))
result = lastNumber + numberInDisplay;


return result;
}


void displayResult(double result){
setDisplayString(Double.toString(result));
lastNumber = result;
displayMode = RESULT_MODE;
clearOnNextDigit = true;
}


void displayError(String errorMessage){
setDisplayString(errorMessage);
lastNumber = 0;
displayMode = ERROR_MODE;
clearOnNextDigit = true;
}


public static void main(String args[]) {
Calculator calci = new Calculator();
Container contentPane = calci.getContentPane();
// contentPane.setLayout(new BorderLayout());
calci.setTitle("Java Swing Calculator");
calci.setSize(241, 217);
calci.pack();
calci.setLocation(400, 250);
calci.setVisible(true);
calci.setResizable(false);
}

} //End of Swing Calculator Class.


class DivideByZeroException extends Exception{
public DivideByZeroException()
{
super();
}

public DivideByZeroException(String s)
{
super(s);
}
}


class CustomABOUTDialog extends JDialog implements ActionListener {
JButton jbnOk;


CustomABOUTDialog(JFrame parent, String title, boolean modal){
super(parent, title, modal);
setBackground(Color.black);

JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER));


StringBuffer text = new StringBuffer();
text.append("Calculator Information\n\n");
text.append("Developer: Hemanth\n");
text.append("Version: 1.0");

JTextArea jtAreaAbout = new JTextArea(5, 21);
jtAreaAbout.setText(text.toString());
jtAreaAbout.setFont(new Font("Times New Roman", 1, 13));
jtAreaAbout.setEditable(false);


p1.add(jtAreaAbout);
p1.setBackground(Color.red);
getContentPane().add(p1, BorderLayout.CENTER);


JPanel p2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
jbnOk = new JButton(" OK ");
jbnOk.addActionListener(this);


p2.add(jbnOk);
getContentPane().add(p2, BorderLayout.SOUTH);


setLocation(408, 270);
setResizable(false);


addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
Window aboutDialog = e.getWindow();
aboutDialog.dispose();
}
}
);

pack();
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource() == jbnOk) {
this.dispose();
}
}

}