Thursday, 20 January 2022

Add Two Numbers in JAVA using GUI (awt, swing, event handling)


 import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class MyFrameSample  extends JFrame implements ActionListener

{


JButton btn;

JTextField[] txt;

MyFrameSample()

{

txt=new JTextField[3];//initializing array of text fields

btn=new JButton("Click Me");//initializing button

txt[0]=new JTextField("Enter a");//it will be used to take number as input

txt[1]=new JTextField("Enter b");

txt[2]=new JTextField("a+b = ");//result will be set here

btn.addActionListener(this);//it register action listener with button and this(out frame) will

// handle action event

add(txt[0]);

add(txt[1]);

add(txt[2]);

add(btn);

}

public void actionPerformed(ActionEvent e)//on button click this will be called

{

int a=Integer.parseInt(txt[0].getText());//converting string into integer

int b=Integer.parseInt(txt[1].getText());

int c=a+b;

txt[2].setText(""+c);

}

}

class FrameDemoSample

{

public static void main(String args[])

{

MyFrameSample x=new MyFrameSample();

x.setLayout(new FlowLayout());//setting layout

x.setSize(300,400);//setting size

x.setTitle("My Frame Sample");//title

x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cross button working

x.setVisible(true);//frame will be visible now

}

}

#JAVA #awt #swing #events #frames #jframe #java 

UGC-NET Computer Science Unix Questions with Explanation

passwd Command in Unix:

The command that we use in a Unix system to change password is passwd (Note spelling correctly).
passwd:

$ passwd
Old   Password :   **********[enter]
New  Password :  *********[enter]
Renter Password : *********[enter]

$ _
(Prompt is returned-command completes)

Wednesday, 19 January 2022

Event Handling in JAVA

 Event handling is fundamental to Java programming because it is integral to the creation of  GUI-based programs. Furthermore, any program that uses a graphical user interface, such as a Java application written for Windows, is event driven. Thus, you cannot write these types of programs without a solid command of event handling. Events are supported by a number of packages, including java.util, java.awt, and java.awt.event. Most events to which your program will respond are generated when the user interacts with a GUI-based program. They are passed to your program in a variety of ways, with the specific method dependent upon the actual event. There are several types of events, including those generated by the mouse, the keyboard, and various GUI controls, such as a push button, scroll bar, or check box.

The Delegation Event Model

The modern approach to handling events is based on the delegation event model, which defines standard and consistent mechanisms to generate and process events. Its concept is quite simple: a source generates an event and sends it to one or more listeners. In this scheme, the listener simply waits until it receives an event. Once an event is received, the listener processes the event and then returns. The advantage of this design is that the application logic that processes events is cleanly separated from the user interface logic that generates those events. A user interface element is able to “delegate” the processing of an event to a separate piece of code. In the delegation event model, listeners must register with a source in order to receive an event notification. This provides an important benefit: notifications are sent only to listeners that want to receive them. This is a more efficient way to handle events than the design used by the old Java 1.0 approach. Previously, an event was propagated up the containment hierarchy until it was handled by a component. This required components to receive events that they did not process, and it wasted valuable time. The delegation event model eliminates this overhead.

Note: Event here is actual object of particular Event.


Events

In the delegation model, an event is an object that describes a state change in a source. It can be generated as a consequence of a person interacting with the elements in a graphical user interface. Some of the activities that cause events to be generated are pressing a button, entering a character via the keyboard, selecting an item in a list, and clicking the mouse. Many other user operations could also be cited as examples. Events may also occur that are not directly caused by interactions with a user interface. For example, an event may be generated when a timer expires, a counter exceeds a value, a software or hardware failure occurs, or an operation is completed. You are free to define events that are appropriate for your application. 

Event Sources

A source is an object that generates an event. This occurs when the internal state of that object changes in some way. Sources may generate more than one type of event. A source must register listeners in order for the listeners to receive notifications about a specific type of event. Each type of event has its own registration method. 

Here is the general form: public void addTypeListener(TypeListener el) 

Here, Type is the name of the event, and el is a reference to the event listener. For example, the method that registers a keyboard event listener is called addKeyListener( ). The method that registers a mouse motion listener is called addMouseMotionListener( ). When an event occurs, all registered listeners are notified and receive a copy of the event object. This is known as multicasting the event. In all cases, notifications are sent only to listeners that register to receive them.

A source must also provide a method that allows a listener to unregister an interest in a specific type of event. 

The general form of such a method is this: public void removeTypeListener(TypeListener el)

Here, Type is the name of the event, and el is a reference to the event listener. For example, to remove a keyboard listener, you would call removeKeyListener( ). The methods that add or remove listeners are provided by the source that generates events. For example, the Component class provides methods to add and remove keyboard and mouse event listeners.

Event Listeners

A listener is an object that is notified when an event occurs. It has two major requirements. First, it must have been registered with one or more sources to receive notifications about specific types of events. Second, it must implement methods to receive and process these notifications. The methods that receive and process events are defined in a set of interfaces found in java.awt.event. For example, the MouseMotionListener interface defines two methods to receive notifications when the mouse is dragged or moved. Any object may receive and process one or both of these events if it provides an implementation of this interface.

Event Classes

The classes that represent events are at the core of Java’s event handling mechanism. Thus, a discussion of event handling must begin with the event classes. It is important to understand, however, that Java defines several types of events and that not all event classes can be discussed in this chapter. The most widely used events are those defined by the AWT and those defined by Swing. 

At the root of the Java event class hierarchy is EventObject, which is in java.util. It is the superclass for all events.

 Its one constructor is shown here: EventObject(Object src)

Here, src is the object that generates this event. EventObject contains two methods: getSource( ) and toString( ). The getSource( ) method returns the source of the event.

Its general form is shown here: Object getSource( ) 

As expected, toString( ) returns the string equivalent of the event.

The class AWTEvent, defined within the java.awt package, is a subclass of EventObject. It is the superclass (either directly or indirectly) of all AWT-based events used by the delegation event model. Its getID( ) method can be used to determine the type of the event.

The signature of this method is shown here: int getID( ) 

The package java.awt.event defines many types of events that are generated by various user interface elements.


Sunday, 20 June 2021

Inter Thread Communication in java

multithreading replaces event loop programming by dividing your

tasks into discrete, logical units. Threads also provide a secondary benefit: they do away

with polling. Polling is usually implemented by a loop that is used to check some condition

repeatedly. Once the condition is true, appropriate action is taken. This wastes CPU time.

For example, consider the classic queuing problem, where one thread is producing some

data and another is consuming it. To make the problem more interesting, suppose that the

producer has to wait until the consumer is finished before it generates more data. In a polling system, the consumer would waste many CPU cycles while it waited for the producer to

produce. Once the producer was finished, it would start polling, wasting more CPU cycles

waiting for the consumer to finish, and so on. Clearly, this situation is undesirable.

To avoid polling, Java includes an elegant interprocess communication mechanism via

the wait( ), notify( ), and notifyAll( ) methods. These methods are implemented as final

methods in Object, so all classes have them. All three methods can be called only from

within a synchronized context. Although conceptually advanced from a computer science

perspective, the rules for using these methods are actually quite simple:

• wait( ) tells the calling thread to give up the monitor and go to sleep until some

other thread enters the same monitor and calls notify( ).

• notify( ) wakes up a thread that called wait( ) on the same object.

• notifyAll( ) wakes up all the threads that called wait( ) on the same object. One of

the threads will be granted access.

These methods are declared within Object, as shown here:

final void wait( ) throws InterruptedException

final void notify( )

final void notifyAll( )

Additional forms of wait( ) exist that allow you to specify a period of time to wait.

Before working through an example that illustrates interthread communication, an

important point needs to be made. Although wait( ) normally waits until notify( ) or

notifyAll( ) is called, there is a possibility that in very rare cases the waiting thread could be

awakened due to a spurious wakeup. In this case, a waiting thread resumes without notify( )

or notifyAll( ) having been called. (In essence, the thread resumes for no apparent reason.)

Because of this remote possibility, Sun recommends that calls to wait( ) should take place

within a loop that checks the condition on which the thread is waiting. The following

example shows this technique.

 //Inter Thread Communication in java

class Shared

{

int n;

boolean available=false;

Shared(int x)

{

n=x;

}

synchronized void produce(int x)

{

while(available)

{

try

{

wait();

}

catch(InterruptedException e){}

}

n=x;

available=true;

notify();

}

synchronized int consume()

{

while(!available)

{

try

{

wait();

}

catch(InterruptedException e){}

}

available=false;

notify();

return n;

}

}

class Producer implements Runnable

{

Shared s;

Producer(Shared s1)

{

s=s1;

}

public void run()

{

for(int i=1;i<=10;i++)

{

s.produce(i);

System.out.println("Produced "+i);

}

}

}

class Consumer implements Runnable

{

Shared s;

Consumer(Shared s1)

{

s=s1;

}

public void run()

{

for(int i=1;i<=10;i++)

{

System.out.println("Consumed "+s.consume());

}

}

}

class InterThreadComDemo

{

public static void main(String args[])

{

Shared ob=new Shared(-1);

Producer p=new Producer(ob);

Consumer c=new Consumer(ob);

Thread t1=new Thread(p);

Thread t2=new Thread(c);

t1.start();

t2.start();

}

}

Deadlocks in JAVA

A special type of error that you need to avoid that relates specifically to multitasking is

deadlock, which occurs when two threads have a circular dependency on a pair of synchronized

objects. For example, suppose one thread enters the monitor on object X and another thread

enters the monitor on object Y. If the thread in X tries to call any synchronized method on Y,

it will block as expected. However, if the thread in Y, in turn, tries to call any synchronized

method on X, the thread waits forever, because to access X, it would have to release its own

lock on Y so that the first thread could complete. Deadlock is a difficult error to debug for

two reasons:

• In general, it occurs only rarely, when the two threads time-slice in just the right way.

• It may involve more than two threads and two synchronized objects

//Deadlocks in java

 class DeadLockDemo

{

public static void main(String args[])

{

String r1="Resource 1";

String r2="Resource 2";

Thread t1=new Thread()

{

public void run()

{

synchronized(r1)

{

System.out.println("Locked R1");

try

{

Thread.sleep(300);

}

catch(Exception e){}

synchronized(r2)

{

System.out.println("Locked R2");

}

}

}

};

Thread t2=new Thread()

{

public void run()

{

synchronized(r2)

{

System.out.println("Locked R2");

try

{

Thread.sleep(300);

}

catch(Exception e){}

synchronized(r1)

{

System.out.println("Locked R1");

}

}

}

};

t1.start();

t2.start();

}

}

Rethrowing Exception in JAVA

 A Java exception is an object that describes an exceptional (that is, error) condition that has

occurred in a piece of code. When an exceptional condition arises, an object representing

that exception is created and thrown in the method that caused the error. That method may

choose to handle the exception itself, or pass it on. Either way, at some point, the exception

is caught and processed. Exceptions can be generated by the Java run-time system, or they

can be manually generated by your code. Exceptions thrown by Java relate to fundamental

errors that violate the rules of the Java language or the constraints of the Java execution

environment. Manually generated exceptions are typically used to report some error condition

to the caller of a method.

Java exception handling is managed via five keywords: try, catch, throw, throws, and

finally. Briefly, here is how they work. Program statements that you want to monitor for

exceptions are contained within a try block. If an exception occurs within the try block, it is

thrown. Your code can catch this exception (using catch) and handle it in some rational manner.

System-generated exceptions are automatically thrown by the Java run-time system. To

manually throw an exception, use the keyword throw. Any exception that is thrown out of

a method must be specified as such by a throws clause. Any code that absolutely must be

executed after a try block completes is put in a finally block.

//Rethrowing Exception in JAVA

class ExceptionDemo

{

static void divide(int a,int b)

{

try

{

System.out.println("a/b = "+a/b);

}

catch(ArithmeticException e)

{

System.out.println("ArithmeticException caught in divide");

System.out.println("Rethrowing e");

throw e;

}

}

public static void main(String args[])

{

try

{

divide(10,2);

divide(20,0);

}

catch(ArithmeticException e)

{

System.out.println("ArithmeticException Caught in main");

}

}

}

User Defined Exception in JAVA

Although Java’s built-in exceptions handle most common errors, you will probably want

to create your own exception types to handle situations specific to your applications. This

is quite easy to do: just define a subclass of Exception (which is, of course, a subclass of

Throwable). Your subclasses don’t need to actually implement anything—it is their existence

in the type system that allows you to use them as exceptions.

The Exception class does not define any methods of its own. It does, of course, inherit

those methods provided by Throwable. Thus, all exceptions, including those that you create,

have the methods defined by Throwable available to them.Exception defines four constructors. Two were added by JDK 1.4 to support chained

exceptions, described in the next section. The other two are shown here:

Exception( )

Exception(String msg)

The first form creates an exception that has no description. The second form lets you specify

a description of the exception.

Although specifying a description when an exception is created is often useful, sometimes

it is better to override toString( ). Here’s why: The version of toString( ) defined by Throwable

(and inherited by Exception) first displays the name of the exception followed by a colon, which

is then followed by your description. By overriding toString( ), you can prevent the exception

name and colon from being displayed. This makes for a cleaner output, which is desirable in

some cases.


 //User defined exception when radius of circle is negative

class MyException extends Exception

{

MyException()

{

//Empty Constructor must be there

}

MyException(String str)

{

super(str);

}

}

class DemoException

{

static double area(double r) throws MyException

{

if(r<0)

throw new MyException("Radius cannot be negative");

return 3.14*r*r;

}

public static void main(String args[])

{

try

{

System.out.println("Area is "+area(-10.0));

}

catch(MyException e)

{

//e.printStackTrace();

                        System.out.println(e.getMessage());//It will print Radius cannot be negative 

}

finally

{

System.out.println("Inside Finally");

}

System.out.println("Program Ends");

}

}

Sunday, 6 September 2020

UGC-NET Computer Science Previous Year Question Papers

 UGC-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

CBSE-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

NTA-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

Q:15 With respect to CRT, the horizontal retrace is defined as:

(A) The path an electron beam takes when returning to the left side of the CRT.

(B) The path an electron beam takes when returning to the right side of the CRT.

(C) The technique of turning the electron beam off while retracing.

(D) The technique of turning the electron beam on/off while retracing.


Answer: (A)

Explanation: In computer graphics Horizontal Retrace is defined as: The path an electron beam takes when returning to the left side of the CRT.

Raster Scan and Random Scan Display in Computer Graphics

The scanning process sweeps the beam from left to right across the screen. At the end of the scanline the beam is moved to the start of the next (horizontal retrace). After the last scanline the beam is returned to the start position. (Vertical retrace).
So, option (A) is correct.

UGC-NET Computer Science Previous Year Question Papers

 UGC-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

CBSE-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

NTA-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 


Q:14 Which of the following is not true in case of Oblique Projections?
(A) Parallel projection rays are not perpendicular to the viewing plane.
(B) Parallel lines in space appear parallel on the final projected image.
(C) Used exclusively for pictorial purposes rather than formal working drawings.
(D) Projectors are always perpendicular to the plane of projection.


Answer: (D)

Explanation: 

 

(A) → Parallel projection rays are not perpendicular to the viewing plane. TRUE
(B) → Parallel lines in space appear parallel on the final projected image. TRUE
(C) → Used exclusively for pictorial purposes rather than formal working drawings. TRUE

(D) → Projectors are always perpendicular to the plane of projection. False

The projectors in oblique projection intersect the projection plane at an oblique angle to produce the projected image, as opposed to the perpendicular angle used in orthographic projection. 

So, option (D) is correct.

UGC-NET Computer Science Previous Year Question Papers

 UGC-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

CBSE-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

NTA-NET NOVEMBER 2017 QUESTIONS WITH EXPLANATION 

Q:11 Given two relations R1(A, B) and R2(C, D), the result of following query

Select distinct A, B
from R1, R2

is guaranteed to be same as R1 provided one of the following condition is satisfied.
(A) R1 has no duplicates and R2 is empty.
(B) R1 has no duplicates and R2 is non – empty.
(C) Both R1 and R2 have no duplicates.
(D) R2 has no duplicates and R1 is non – empty.


Answer: (B)

Explanation: Select A,B
From R1, R2 :
In this query first we will take Cartesian product of R1, R2 (R2 must be non empty)for this 0- R2 then select distinct A,B from Cartesian product of R1, R2 (for A,B being distinct there should not any duplicate A,B).
And
Select A,B
From R2
For this query A,B → No duplicate A,B.
By combining condition for both query we will get the right condition.
So, option (B) is correct.