0% found this document useful (0 votes)
28 views30 pages

Java Journal

This document outlines a semester 4 Java programming laboratory certificate and experiments. It includes 30 experiments covering topics like variables, arrays, classes, inheritance, interfaces and more. The experiments are grouped into 5 units and each includes the code, output and date of completion.

Uploaded by

KHATRI DHRUV
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
28 views30 pages

Java Journal

This document outlines a semester 4 Java programming laboratory certificate and experiments. It includes 30 experiments covering topics like variables, arrays, classes, inheritance, interfaces and more. The experiments are grouped into 5 units and each includes the code, output and date of completion.

Uploaded by

KHATRI DHRUV
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 30

CS-19 Programming with JAVA

BCA Semester – 4

Journal

Page 1 of 30
BCA Department

Laboratory Certificate

This is to certify that Smt./Shri ________________________________________

has satisfactory completed BCA Semester-4 practical experiments of subject CS-19

Programming with Java during the academic year 2022-23. Her/His enrollment

number is ______________________ registered at Saurashtra University, Rajkot.

Date: _____________

Subject In-Charge Head of the Department

Page 2 of 30
Index
Page Date of Date of
Sr. Name of Experiments Remarks
No. Experiment Supervision
Unit-1
1 Hello World Program 6
2 Java Variables 6
3 Leap Year 6
4 Find vowels 6
5 Passing an array to function 7
6 Class and Objects 7
7 Class with Method 8
8 Parameterized constructor 8
9 Constructor Overloading 8
10 Jagged Array 9
11 Copy constructor 9
12 Java Inheritance 9
13 Method Overloading 10
Unit-2
14 Constructor in Inheritance 12
15 Abstract Class 12
16 Final Class 13
17 Java Interface 13
18 Inner Class 14
19 util.Date class 14
20 Java Wrapper Classes 14
21 Creating user defined package 15
22 Java StringTokenizer 15
Unit-3
23 18
24 18
25 19
26 21
27 21
28 22
29 23
30
31
32
33
34
35
36
Unit-4
Page 3 of 30
Index
Page Date of Date of
Sr. Name of Experiments Remarks
No. Experiment Supervision
37
38
39
40
41
42
43
Unit-5
44
45
46
47
48

Page 4 of 30
Unit – 1

History, Introduction and


Language Basics, Classes and
Objects

Page 5 of 30
1. Hello World Program
1 class HelloJava {
2 public static void main(String arg[]) {
3 System.out.println("Hello Java");
4 System.out.print("Java is an OOP");
5 }
6 }

2. Java Variables
1 //Java Variables
2 class VariableDemo {
3 public static void main(String[] arg) {
4 int i=10;
5 String n="Java";
6 float f=5.5f;
7 System.out.println("Value of i: "+i);
8 System.out.println("Value of n: "+n);
9 System.out.println("Value of f: "+f);
10 }
11 }

3. Leap Year
1 //Leap year example using if...else
2
3 public class LeapYearExample {
4 public static void main(String[] args) {
5 int year=2021;
6 if(((year % 4==0) && (year % 100!=0)) || (year % 400==0)){
7 System.out.println("LEAP YEAR");
8 }
9 else{
10 System.out.println("COMMON YEAR");
11 }
12 }
13 }

4. Find vowels
1 //Vowels using switch...case
2
3 public class SwitchExample {
4 public static void main(String[] args) {
5 char ch='L';
6 switch(ch)
7 {
8 case 'a':
9 System.out.println("Vowel");
10 break;
11 case 'e':
12 System.out.println("Vowel");
13 break;
14 case 'i':
15 System.out.println("Vowel");
16 break;
17 case 'o':
18 System.out.println("Vowel");
19 break;
20 case 'u':
Page 6 of 30
21 System.out.println("Vowel");
22 break;
23 case 'A':
24 System.out.println("Vowel");
25 break;
26 case 'E':
27 System.out.println("Vowel");
28 break;
29 case 'I':
30 System.out.println("Vowel");
31 break;
32 case 'O':
33 System.out.println("Vowel");
34 break;
35 case 'U':
36 System.out.println("Vowel");
37 break;
38 default:
39 System.out.println("Consonant");
40 }
41 }
42 }

5. Passing an array to function


1 //Java Program to demonstrate the way of passing an array
2
3 class FindMin{
4 static void min(int arr[]){
5 int min=arr[0];
6 for(int i=1;i<arr.length;i++)
7 if(min>arr[i]) min=arr[i];
8 System.out.println(min);
9 }
10 public static void main(String args[]){
11 int a[]={33,3,1,5};//declaring and initializing an array
12 min(a);//passing array to method
13 }
14 }

6. Class and Objects


1 //Oop Example
2 class Student{
3 int id;
4 String name;
5 }
6
7 class TestStudent{
8 public static void main(String args[]){
9 Student s1=new Student();
10 Student s2=new Student();
11 s1.id=101;
12 s1.name="Ritul";
13 s2.id=102;
14 s2.name="Amit";
15 System.out.println(s1.id+" "+s1.name);
16 System.out.println(s2.id+" "+s2.name);
17 }
18 }

Page 7 of 30
7. Class with Method
1 //Class with method
2
3 class Employee{
4 int id;
5 String name;
6 float salary;
7 void setData(int i, String n, float s) {
8 id=i;
9 name=n;
10 salary=s;
11 }
12 void getData() {
13 System.out.println(id+" "+name+" "+salary);
14 }
15 }
16 public class TestEmployee {
17 public static void main(String[] args) {
18 Employee e1=new Employee();
19 Employee e2=new Employee();
20 e1.setData(101,"Ravi",45000);
21 e2.setData(102,"Mohit",25000);
22 e1.getData();
23 e2.getData();
24 }
25 }

8. Parameterized constructor
1 //Java Program to demonstrate the use of the parameterized constructor.
2
3 class Student4{
4 int id;
5 String name;
6 //creating a parameterized constructor
7 Student4(int i,String n){
8 id = i;
9 name = n;
10 }
11 //method to display the values
12 void display(){
13 System.out.println(id+" "+name);
14 }
15 public static void main(String args[]){
16 //creating objects and passing values
17 Student4 s1 = new Student4(111,"Ritul");
18 Student4 s2 = new Student4(222,"Ravi");
19 //calling method to display the values of object
20 s1.display();
21 s2.display();
22 }
23 }

9. Constructor Overloading
1 //Java program to overload constructors
2 class Student5{
3 int id;
4 String name;
5 int age;
6 //creating two arg constructor
7 Student5(int i,String n){
8 id = i;
9 name = n;
Page 8 of 30
10 }
11 //creating three arg constructor
12 Student5(int i,String n,int a){
13 id = i;
14 name = n;
15 age=a;
16 }
17 void display(){System.out.println(id+" "+name+" "+age);}
18
19 public static void main(String args[]){
20 Student5 s1 = new Student5(111,"Mohit");
21 Student5 s2 = new Student5(222,"Priyanshu",25);
22 s1.display();
23 s2.display();
24 }
25 }

10. Jagged Array


1 //Program to Jagged Array.
2
3 class Test
4 {
5 public static void main(String[] args)
6 {
7 int[][] arr = new int[2][];// Declare the array
8
9 arr[0] = new int[] { 11, 21, 56, 78 };// Initialize the array
10 arr[1] = new int[] { 42, 61, 37, 41, 59, 63 };
11
12 // Traverse array elements
13 for (int i = 0; i < arr.length; i++)
14 {
15 for (int j = 0; j < arr[i].length; j++)
16 {
17 System.out.print(arr[i][j] + " ");
18 }
19 System.out.println();
20 }
21 }
22 }

11. Copy constructor


1 //Copy constructor...
2
3 class Student6{
4 int id;
5 String name;
6 //constructor to initialize integer and string
7 Student6(int i,String n){
8 id = i;
9 name = n;
10 }
11 //constructor to initialize another object
12 Student6(Student6 s){
13 id = s.id;
14 name =s.name;
15 }
16 void display(){System.out.println(id+" "+name);}
17
18 public static void main(String args[]){
19 Student6 s1 = new Student6(111,"Krupa");
20 Student6 s2 = new Student6(s1);
21 s1.display();
22 s2.display();
23 }
24 }

12. Java Inheritance


1 //Java Inheritance Demo
2
3 class Animal{
4 void eat(){
5 System.out.println("eating....");
Page 9 of 30
6 }
7 }
8 class Dog extends Animal{
9 void bark(){
10 System.out.println("barking...");
11 }
12 }
13 class BabyDog extends Dog{
14 void weep(){
15 System.out.println("weeping...");
16 }
17 }
18 class TestInheritance{
19 public static void main(String args[]){
20 BabyDog d=new BabyDog();
21 d.weep();
22 d.bark();
23 d.eat();
24 }
25 }

13. Method Overloading


1 //Method Overloading Demo...
2 class Adder{
3 static int add(int a, int b) {
4 return a+b;
5 }
6 static double add(double a, double b) {
7 return a+b;
8 }
9 }
10 class TestOverloading{
11 public static void main(String[] args){
12 System.out.println(Adder.add(11,11));
13 System.out.println(Adder.add(12.3,12.6));
14 }
15 }

Page 10 of 30
Unit – 2
Inheritance, Java Packages

Page 11 of 30
14. Constructor in Inheritance
1 //Constructor in Inheritance
2 class Animal{
3 Animal() {
4 System.out.println("From animal constructor");
5 }
6 void eat(){
7 System.out.println("eating....");
8 }
9 protected void finalize() {
10 System.out.println("End of animal");
11 }
12 }
13 class Dog extends Animal{
14 Dog() {
15 System.out.println("From dog constructor");
16 }
17 void bark(){
18 System.out.println("barking...");
19 }
20 protected void finalize() {
21 System.out.println("End of dog");
22 }
23
24 }
25 class BabyDog extends Dog{
26 BabyDog() {
27 System.out.println("From babydog constructor");
28 }
29 void weep(){
30 System.out.println("weeping...");
31 }
32 protected void finalize() {
33 System.out.println("End of babydog");
34 }
35
36 }
37 class TestInheritance2{
38 public static void main(String args[]){
39 BabyDog d=new BabyDog();
40 d.weep();
41 d.bark();
42 d.eat();
43 d=null;
44 System.gc();
45 }
46 }

15. Abstract Class


1 //abstract class demo.
2
3 abstract class Shape{
4 abstract void draw();
5 }
6
7 class Rectangle extends Shape{
8 void draw(){System.out.println("drawing rectangle");}
9 }
10 class Circle extends Shape{

Page 12 of 30
11 void draw(){System.out.println("drawing circle");}
12 }
13
14 class TestAbstraction{
15 public static void main(String args[]){
16 Shape s1=new Circle();
17 Shape s2=new Rectangle();
18 s1.draw();
19 s2.draw();
20 }
21 }

16. Final Class


1 //Final Class
2
3 final class ParentClass
4 {
5 void showData()
6 {
7 System.out.println("This is a method of final Parent class");
8 }
9 }
10
11 //It will throw compilation error
12 class ChildClass extends ParentClass
13 {
14 void showData()
15 {
16 System.out.println("This is a method of Child class");
17 }
18 }
19 class MainClass
20 {
21 public static void main(String arg[])
22 {
23 ParentClass obj = new ChildClass();
24 obj.showData();
25 }
26 }

17. Java Interface


1 //Interface Demo...
2 interface Animal {
3 public void eat();
4 public void travel();
5 }
6
7 class MammalInt implements Animal {
8
9 public void eat() {
10 System.out.println("Mammal eats");
11 }
12
13 public void travel() {
14 System.out.println("Mammal travels");
15 }
16
17 public int noOfLegs() {
18 return 0;
19 }
20
21 }
22
Page 13 of 30
23 public class Main {
24 public static void main(String args[]) {
25 MammalInt m = new MammalInt();
26 m.eat();
27 m.travel();
28 }
29 }

18. Inner Class


1 //Inner class demo.
2
3 class Main {
4 private int data=30;
5 class Inner{
6 void msg(){System.out.println("data is "+data);}
7 }
8 public static void main(String args[]){
9 Main obj=new Main();
10 Main.Inner in=obj.new Inner();
11 in.msg();
12 }
13 }

19. util.Date class


1 import java.util.Date;
2
3 public class Main {
4
5 public static void main(String args[]) {
6
7 Date date = new Date();
8
9 System.out.println(date.toString());
10 }
11 }

20. Java Wrapper Classes


1 //wrapper classes objects and vice-versa
2
3 public class Main {
4 public static void main(String args[]){
5 byte b=10;
6 short s=20;
7 int i=30;
8 long l=40;
9 float f=50.0F;
10 double d=60.0D;
11 char c='a';
12 boolean b2=true;
13
14 //Autoboxing: Converting primitives into objects
15 Byte byteobj=b;
16 Short shortobj=s;
17 Integer intobj=i;
18 Long longobj=l;
19 Float floatobj=f;
20 Double doubleobj=d;
21 Character charobj=c;
22 Boolean boolobj=b2;
23
24 //Printing objects
25 System.out.println("---Printing object values---");
26 System.out.println("Byte object: "+byteobj);
27 System.out.println("Short object: "+shortobj);

Page 14 of 30
28 System.out.println("Integer object: "+intobj);
29 System.out.println("Long object: "+longobj);
30 System.out.println("Float object: "+floatobj);
31 System.out.println("Double object: "+doubleobj);
32 System.out.println("Character object: "+charobj);
33 System.out.println("Boolean object: "+boolobj);
34
35 //Unboxing: Converting Objects to Primitives
36 byte bytevalue=byteobj;
37 short shortvalue=shortobj;
38 int intvalue=intobj;
39 long longvalue=longobj;
40 float floatvalue=floatobj;
41 double doublevalue=doubleobj;
42 char charvalue=charobj;
43 boolean boolvalue=boolobj;
44
45 //Printing primitives
46 System.out.println("---Printing primitive values---");
47 System.out.println("byte value: "+bytevalue);
48 System.out.println("short value: "+shortvalue);
49 System.out.println("int value: "+intvalue);
50 System.out.println("long value: "+longvalue);
51 System.out.println("float value: "+floatvalue);
52 System.out.println("double value: "+doublevalue);
53 System.out.println("char value: "+charvalue);
54 System.out.println("boolean value: "+boolvalue);
55 }
56 }

21. Creating user defined package


1 //Creating user-defined package..
2
3 package mypack;
4
5 public class Simple{
6 public static void main(String args[]){
7 System.out.println("Welcome to package");
8 }
9 }

22. Java StringTokenizer


1 import java.util.StringTokenizer;
2
3 public class Simple {
4 public static void main(String args[]){
5 StringTokenizer st = new StringTokenizer("Java OOP Programing Language"," ");
6 while (st.hasMoreTokens()) {
7 System.out.println(st.nextToken());
8 }
9 }
}

Page 15 of 30
Unit – 3
Exception Handling, Threading
and Streams (Input and Output)

Page 16 of 30
23. Exception Handling
1 //Exception Handling Demonstration
2 public class Main
3 {
4 public static void main(String[] args) {
5 int a=10,b=0,c=0;
6 System.out.println("Start of main()");
7 try{
8 c=a/b;
9 }catch(ArithmeticException ae) {
10 System.out.println(ae);
11 }finally {
12 System.out.println("I am always there...");
13 }
14 System.out.println("Value of C:"+c);
15 System.out.println("End of main()");
16 }
17 }

24. Multiple catch statements


1 //multiple catch statements
2 public class Main {
3
4 public static void main(String[] args) {
5
6 try{
7 int a[]=new int[5];
8 a[5]=30/0;
9 }
10 catch(ArithmeticException e)
11 {
12 System.out.println("Arithmetic Exception occurs");
13 }
14 catch(ArrayIndexOutOfBoundsException e)
15 {
16 System.out.println("ArrayIndexOutOfBounds Exception occurs");
17 }
18 catch(Exception e)
19 {
20 System.out.println("Parent Exception occurs");
21 }
22 System.out.println("rest of the code");
23 }
24 }

24. Custom exception


1 //Custom exception example...
2 class InvalidAgeException extends Exception{
3 InvalidAgeException(String s){
4 super(s);
5 }
6 }
7 class Main {
8
9 static void validate(int age)throws InvalidAgeException{
10 if(age<18)
11 throw new InvalidAgeException("not valid");
12 else
13 System.out.println("welcome to vote");
14 }
15
16 public static void main(String args[]){
17 try{
18 validate(13);
19 }catch(Exception m){System.out.println("Exception occured: "+m);}
20
Page 17 of 30
21 System.out.println("rest of the code...");
22 }
23 }

25. Multithreading using Thread Class


1 public class ThreadDemo1 {
2
3 public static void main(String[] args) {
4 System.out.println("Start of main");
5 MyThread1 mt1 = new MyThread1();
6 MyThread2 mt2 = new MyThread2();
7 mt1.start();
8 mt2.start();
9 System.out.println("End of main");
10 }
11 }
12
13 class MyThread1 extends Thread{
14 public void run(){
15 for(int i=1;i<=10;i++) {
16 System.out.println("MyThread-1."+i);
17 }
18 }
19 }
20
21 class MyThread2 extends Thread{
22 public void run(){
23 for(int i=1;i<=10;i++) {
24 System.out.println("MyThread-2."+i);
25 }
26 }
27 }

26. Multithreading using Runnable interface


1 public class ThreadDemo2 {
2 public static void main(String[] args) {
3 System.out.println("Start of main");
4 MyThread mt = new MyThread();
5 Thread t1 = new Thread(mt,"Thread-1");
6 Thread t2 = new Thread(mt,"Thread-2");
7 t1.start();
8 t2.start();
9 System.out.println("End of main");
10 }
11 }
12
13 class MyThread implements Runnable {
14 public void run() {
15 for(int i=1;i<=10;i++) {
16 System.out.println(Thread.currentThread().getName()+"."+i);
17 }
18 }
19 }

27. Thread Scheduling


1 public class ThreadDemo3 {
2
3 public static void main(String[] args) {
4 System.out.println("Start of main");
5 MyThread1 mt1 = new MyThread1();
6 MyThread2 mt2 = new MyThread2();
7 mt1.start();
8 mt2.start();
9 System.out.println("End of main");
10 }
11
12 }
13
Page 18 of 30
14 class MyThread1 extends Thread{
15 public void run(){
16 for(int i=1;i<=10;i++) {
17 System.out.println("MyThread-1."+i);
18 Thread.yield();
19 }
20 }
21 }
22
23 class MyThread2 extends Thread{
24 public void run(){
25 for(int i=1;i<=10;i++) {
26 System.out.println("MyThread-2."+i);
27 Thread.yield();
28 }
29 }
30 }

28. Thread Joins


1 public class ThreadDemo3 {
2
3 public static void main(String[] args) {
4 try {
5 System.out.println("Start of main");
6 MyThread1 mt1 = new MyThread1();
7 MyThread2 mt2 = new MyThread2();
8 mt1.start();
9 mt1.join();
10 mt2.start();
11 mt2.join();
12 System.out.println("End of main");
13 }catch(Exception e){}
14 }
15
16 }
17
18 class MyThread1 extends Thread{
19 public void run(){
20 for(int i=1;i<=10;i++) {
21 System.out.println("MyThread-1."+i);
22 try {
23 sleep(100);
24 }catch(Exception e){ }
25 }
26 }
27 }
28
29 class MyThread2 extends Thread{
30 public void run(){
31 for(int i=1;i<=10;i++) {
32 System.out.println("MyThread-2."+i);
33 try {
34 sleep(200);
35 }catch(Exception e){ }
36 }
37 }
38 }

29. Thread Priorates


1 public class ThreadDemo4 {
2
3 public static void main(String[] args) {
4 System.out.println("Start main");
5 MyThread mt = new MyThread();
6 Thread t1 = new Thread(mt,"Thread-1");
7 Thread t2 = new Thread(mt,"Thread-2");
8 t1.start();
9 t2.start();
10 t2.setPriority(t1.getPriority()+5);
11 System.out.println("End main");
12 }
13
14 }
15

Page 19 of 30
16 class MyThread implements Runnable {
17 public void run() {
18 for(int i = 1;i<=10;i++) {
19 System.out.println(Thread.currentThread().getName());
20 }
21 }
22 }

30. File Class


1 import java.io.*;
2
3 public class IODemo1 {
4
5 public static void main(String[] args) {
6
7 try {
8 File f = new File("abc.txt");
9 if(f.createNewFile()) {
10 System.out.println("File Sucessfully created");
11 }
12 else {
13 System.out.println("File already exist");
14 }
15 System.out.println("File name : "+f.getName());
16 System.out.println("Path: "+f.getPath());
17 System.out.println("Absolute path: " +f.getAbsolutePath());
18 System.out.println("Parent: "+f.getParent());
19 System.out.println("Exists : "+f.exists());
20 System.out.println("Is writeable: "+f.canWrite());
21 System.out.println("Is readable: "+f.canRead());
22 System.out.println("Is a directory: "+f.isDirectory());
23 System.out.println("File Size in bytes: "+f.length());
24 }catch(Exception e){
25 System.out.println(e);
26 }
27 }
28 }

31. Bytestream Class to read file


1 import java.io.*;
2
3 public class IODemo3 {
4 public static void main(String[] args) {
5 System.out.println("Content of output.txt file:\n");
6 try{
7 FileInputStream fin = new FileInputStream("output.txt");
8 int c;
9
10 while((c=fin.read())!= -1 ){
11 System.out.print((char)c);
12 }
13 }catch(Exception e) { }
14 }
15 }

32. Bytestream Class to create file


1 import java.io.*;
2
3 public class IODemo2 {
4
5 public static void main(String[] args) {
6 try{
7 //DataInputStream out = new DataInputStream(System.in);
8 BufferedInputStream out = new BufferedInputStream(System.in);
9 FileOutputStream fout = new FileOutputStream("output.txt");
10 System.out.println("Enter text (enter & to end): &");
11 int ch;
12 while ((ch = (char) out.read()) != '&')
13 fout.write((char)ch);
14 fout.close();
15 }catch(Exception e){}
16 }
17 }

Page 20 of 30
Unit – 4
Applets, Layout Managers

Page 21 of 30
27. Database Connectivity with Book Table of Library Database.
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Data.SqlClient;
11
12 namespace HelloWorldForm
13 {
14 public partial class Form8 : Form
15 {
16 SqlConnection con;
17 SqlCommand cmd;
18 public Form8()
19 {
20 InitializeComponent();
21 }
22
23 private void Form8_Load(object sender, EventArgs e)
24 {
25 con = new SqlConnection(@"Data
26 Source=(LocalDB)\v11.0;AttachDbFilename=D:\Demos\CSharp\HelloWorldForm\HelloWorldForm\Library.mdf;
27 Integrated Security=True");
28 con.Open();
29 ShowData();
30 }
31
32 private void button1_Click(object sender, EventArgs e)
33 {
34 string sql;
35 sql="insert into book values(" + textBox1.Text + ",'
36 "+textBox2.Text+"','"+textBox3.Text+"')";
37 cmd = new SqlCommand(sql,con);
38 cmd.ExecuteNonQuery();
39 ShowData();
40
41 }
42 private void ShowData()
43 {
44 string sql;
45 sql = "select * from book";
46 SqlCommand cmd = new SqlCommand(sql, con);
47 SqlDataAdapter da = new SqlDataAdapter(cmd);
48 DataTable dt = new DataTable();
49 da.Fill(dt);
50 dataGridView1.DataSource = dt;
51
52 }
53 private void Form8_Deactivate(object sender, EventArgs e)
54 {
55 con.Close();
56 }
57
58 private void button2_Click(object sender, EventArgs e)
59 {
60 string sql;
61 sql = "Delete from Book where ID=" + textBox1.Text;
62 cmd = new SqlCommand(sql, con);
63 cmd.ExecuteNonQuery();
64 ShowData();
65 }
66
67 private void button3_Click(object sender, EventArgs e)
68 {
69 string sql;
70 sql = "Update Book Set BookTitle=@title, Author=@author where ID=" + textBox1.Text;
71 cmd = new SqlCommand(sql, con);
72 cmd.CommandType = CommandType.Text;
73 cmd.Parameters.AddWithValue("@title", textBox2.Text);
74 cmd.Parameters.AddWithValue("@author", textBox3.Text);

Page 22 of 30
75 cmd.ExecuteNonQuery();
76 ShowData();
77 }
78 }
79 }
80

Page 23 of 30
Unit – 5

Page 24 of 30
28. Create custom Button Control.
1 //Class Name: ButtonZ
2 using System;
3 using System.Collections.Generic;
4 using System.Text;
5 using System.Drawing;
6 using System.Data;
7 using System.Windows.Forms;
8 using System.Drawing.Drawing2D;
9
10 namespace Custom_Controls_in_CS
11 {
12 public class ButtonZ : System.Windows.Forms.Button
13 {
14 Color clr1, clr2;
15 private Color color1 = Color.DodgerBlue;
16 private Color color2 = Color.MidnightBlue;
17 private Color m_hovercolor1 = Color.Turquoise;
18 private Color m_hovercolor2 = Color.DarkSlateGray;
19 private int color1Transparent = 250;
20 private int color2Transparent = 250;
21 private Color clickcolor1 = Color.Yellow;
22 private Color clickcolor2 = Color.Red;
23 private int angle = 90;
24 private int textX = 100;
25 private int textY = 25;
26 private String text = "";
27 public Color buttonborder_1 = Color.FromArgb(220, 220, 220);
28 public Color buttonborder_2 = Color.FromArgb(150, 150, 150);
29 public Boolean showButtonText = true;
30 public int borderWidth = 2;
31 public Color borderColor = Color.Transparent;
32 public enum ButtonsShapes
33 {
34 Rect,
35 RoundRect,
36 Circle
37 }
38 ButtonsShapes buttonShape;
39
40 public ButtonsShapes ButtonShape
41 {
42 get { return buttonShape; }
43 set
44 {
45 buttonShape = value; Invalidate();
46 }
47 }
48 public String ButtonText
49 {
50 get { return text; }
51 set { text = value; Invalidate(); }
52 }
53
54 public int BorderWidth
55 {
56 get { return borderWidth; }
57 set { borderWidth = value; Invalidate(); }
58 }
59 void SetBorderColor(Color bdrColor)
60 {
61 int red = bdrColor.R - 40;
62 int green = bdrColor.G - 40;
63 int blue = bdrColor.B - 40;
64 if (red < 0)
65 red = 0;
66 if (green < 0)
67 green = 0;
68 if (blue < 0)
69 blue = 0;
70 buttonborder_1 = Color.FromArgb(red, green, blue);
71 buttonborder_2 = bdrColor;
72 }
73 public Color BorderColor
74 {

Page 25 of 30
75 get { return borderColor; }
76 set
77 {
78 borderColor = value;
79 if (borderColor == Color.Transparent)
80 {
81 buttonborder_1 = Color.FromArgb(220, 220, 220);
82 buttonborder_2 = Color.FromArgb(150, 150, 150);
83 }
84 else
85 {
86 SetBorderColor(borderColor);
87 }
88
89 }
90 }
91 public Color StartColor
92 {
93 get { return color1; }
94 set { color1 = value; Invalidate(); }
95 }
96 public Color EndColor
97 {
98 get { return color2; }
100 set { color2 = value; Invalidate(); }
101 }
102 public Color MouseHoverColor1
103 {
104 get { return m_hovercolor1; }
105 set { m_hovercolor1 = value; Invalidate(); }
106 }
107 public Color MouseHoverColor2
108 {
109 get { return m_hovercolor2; }
110 set { m_hovercolor2 = value; Invalidate(); }
111 }
112 public Color MouseClickColor1
113 {
114 get { return clickcolor1; }
115 set { clickcolor1 = value; Invalidate(); }
116 }
117 public Color MouseClickColor2
118 {
119 get { return clickcolor2; }
120 set { clickcolor2 = value; Invalidate(); }
121 }
122
123 public int Transparent1
124 {
125 get { return color1Transparent; }
126 set
127 {
128 color1Transparent = value;
129 if (color1Transparent > 255)
130 {
131 color1Transparent = 255;
132 Invalidate();
133 }
134 else
135 Invalidate();
136 }
137 }
138
139 public int Transparent2
140 {
141 get { return color2Transparent; }
142 set
143 {
144 color2Transparent = value;
145 if (color2Transparent > 255)
146 {
147 color2Transparent = 255;
148 Invalidate();
149 }
150 else
151 Invalidate();
152 }
153 }

Page 26 of 30
154 public int GradientAngle
155 {
156 get { return angle; }
157 set { angle = value; Invalidate(); }
158 }
159 public int TextLocation_X
160 {
161 get { return textX; }
162 set { textX = value; Invalidate(); }
163 }
164 public int TextLocation_Y
165 {
166 get { return textY; }
167 set { textY = value; Invalidate(); }
168 }
170 public Boolean ShowButtontext
171 {
172 get { return showButtonText; }
173 set { showButtonText = value; Invalidate(); }
}

public ButtonZ()
{
this.Size = new Size(100, 40);
this.BackColor = Color.Transparent;
this.FlatStyle = FlatStyle.Flat;
this.FlatAppearance.BorderSize = 0;
this.FlatAppearance.MouseOverBackColor = Color.Transparent;
this.FlatAppearance.MouseDownBackColor = Color.Transparent;
text = this.Text;
}

//method mouse enter


protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
clr1 = color1;
clr2 = color2;
color1 = m_hovercolor1;
color2 = m_hovercolor2;
}
//method mouse leave
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
color1 = clr1;
color2 = clr2;
SetBorderColor(borderColor);
}

protected override void OnMouseDown(MouseEventArgs mevent)


{
base.OnMouseDown(mevent);
color1 = clickcolor1;
color2 = clickcolor2;

int red = borderColor.R - 40;


int green = borderColor.G - 40;
int blue = borderColor.B - 40;
if (red < 0)
red = 0;
if (green < 0)
green = 0;
if (blue < 0)
blue = 0;

buttonborder_2 = Color.FromArgb(red, green, blue);


buttonborder_1 = borderColor;
this.Invalidate();
}

protected override void OnMouseUp(MouseEventArgs mevent)


{
base.OnMouseUp(mevent);
OnMouseLeave(mevent);
color1 = clr1;

Page 27 of 30
color2 = clr2;
SetBorderColor(borderColor);
this.Invalidate();
}

protected override void OnLostFocus(EventArgs e)


{
base.OnLostFocus(e);
color1 = clr1;
color2 = clr2;
this.Invalidate();
}

protected override void OnResize(EventArgs e)


{
base.OnResize(e);
textX = (int)((this.Width / 3) - 1);
textY = (int)((this.Height / 3) + 5);
}
//draw circular button function
void DrawCircularButton(Graphics g)
{
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);

Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2,


angle);
g.FillEllipse(b, 5, 5, this.Width - 10, this.Height - 10);

for (int i = 0; i < borderWidth; i++)


{
g.DrawArc(new Pen(new SolidBrush(buttonborder_1)), 5 + i, 5, this.Width - 10,
this.Height - 10, 120, 180);
g.DrawArc(new Pen(new SolidBrush(buttonborder_2)), 5, 5, this.Width - (10 + i),
this.Height - 10, 300, 180);
}
if (showButtonText)
{
Point p = new Point(textX, textY);
SolidBrush frcolor = new SolidBrush(this.ForeColor);
g.DrawString(text, this.Font, frcolor, p);
}

b.Dispose();
}

//draw rectangular button function


void DrawRectangularButton(Graphics g)
{
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);

Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2,


angle);
g.FillRectangle(b, 0, 0, this.Width, this.Height);
for (int i = 0; i < borderWidth; i++)
{
g.DrawLine(new Pen(new SolidBrush(buttonborder_1)), this.Width - i, 0, this.Width
- i, this.Height);
g.DrawLine(new Pen(new SolidBrush(buttonborder_1)), 0, this.Height - i,
this.Width, this.Height - i);

g.DrawLine(new Pen(new SolidBrush(buttonborder_2)), 0 + i, 0, 0 + i,


this.Height);
g.DrawLine(new Pen(new SolidBrush(buttonborder_2)), 0, 0 + i, this.Width, i);
}
if (showButtonText)
{
Point p = new Point(textX, textY);
SolidBrush frcolor = new SolidBrush(this.ForeColor);
g.DrawString(text, this.Font, frcolor, p);
}

b.Dispose();
}

Page 28 of 30
//draw round rectangular button function
void DrawRoundRectangularButton(Graphics g)
{
Color c1 = Color.FromArgb(color1Transparent, color1);
Color c2 = Color.FromArgb(color2Transparent, color2);
Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(ClientRectangle, c1, c2,
angle);

Region region = new System.Drawing.Region(new Rectangle(5, 5, this.Width,


this.Height));
GraphicsPath grp = new GraphicsPath();
grp.AddArc(5, 5, 40, 40, 180, 90);
grp.AddLine(25, 5, this.Width - 25, 5);
grp.AddArc(this.Width - 45, 5, 40, 40, 270, 90);
grp.AddLine(this.Width - 5, 25, this.Width - 5, this.Height - 25);
grp.AddArc(this.Width - 45, this.Height - 45, 40, 40, 0, 90);
grp.AddLine(25, this.Height - 5, this.Width - 25, this.Height - 5);
grp.AddArc(5, this.Height - 45, 40, 40, 90, 90);
grp.AddLine(5, 25, 5, this.Height - 25);
region.Intersect(grp);
g.FillRegion(b, region);

for (int i = 0; i < borderWidth; i++)


{
g.DrawArc(new Pen(buttonborder_1), 5 + i, 5 + i, 40, 40, 180, 90);
g.DrawLine(new Pen(buttonborder_1), 25, 5 + i, this.Width - 25, 5 + i);
g.DrawArc(new Pen(buttonborder_1), this.Width - 45 - i, 5 + i, 40, 40, 270, 90);
g.DrawLine(new Pen(buttonborder_1), 5 + i, 25, 5 + i, this.Height - 25);

g.DrawLine(new Pen(buttonborder_2), this.Width - 5 - i, 25, this.Width - 5 - i,


this.Height - 25);
g.DrawArc(new Pen(buttonborder_2), this.Width - 45 - i, this.Height - 45 - i, 40,
40, 0, 90);
g.DrawLine(new Pen(buttonborder_2), 25, this.Height - 5 - i, this.Width - 25,
this.Height - 5 - i);
g.DrawArc(new Pen(buttonborder_2), 5 + i, this.Height - 45 - i, 40, 40, 90, 90);

if (showButtonText)
{
Point p = new Point(textX, textY);
SolidBrush frcolor = new SolidBrush(this.ForeColor);
g.DrawString(text, this.Font, frcolor, p);
}

b.Dispose();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

switch (buttonShape)
{
case ButtonsShapes.Circle:
this.DrawCircularButton(e.Graphics);
break;

case ButtonsShapes.Rect:
this.DrawRectangularButton(e.Graphics);
break;

case ButtonsShapes.RoundRect:
this.DrawRoundRectangularButton(e.Graphics);
break;
}
}
}
}

Page 29 of 30
Page 30 of 30

You might also like