Latest Swing Interview Questions and Answers
What’s Java Swing?
Swing is basically a type of Toolkit which is GUI toolkit for Java. It is one part of the Java Foundation Classes (JFC). Swing includes graphical user interface (GUI) widgets such as text boxes, buttons, split-panes, and tables.
Swing widgets provide more sophisticated GUI components than the earlier Abstract Window Toolkit. Since they are written in pure Java, they run the same on all platforms, unlike the AWT which is tied to the underlying platform’s windowing system. Swing supports pluggable look and feel not by using the native platform’s facilities, but by roughly emulating them. This means you can get any supported look and feel on any platform. The disadvantage of lightweight components is slower execution. The advantage is uniform behavior on all platforms.
What is JFC?
JFC stands for Java Foundation Classes. The Java Foundation Classes (JFC) are a set of Java class libraries provided as part of Java 2 Platform, Standard Edition (J2SE) to support building graphics user interface (GUI) and graphics functionality for client applications that will run on popular platforms such as Microsoft Windows, Linux, and Mac OSX
What is AWT?
AWT is basically stands for Abstract Window Toolkit. AWT enables programmers to develop Java applications with GUI components, such as windows, and buttons. The Java Virtual Machine (JVM) is responsible for translating the AWT calls into the appropriate calls to the host operating system.
What are the differences between Swing and AWT?
> AWT is heavy-weight components, but Swing is light-weight components.
> AWT is OS dependent because it uses native components, But Swing components are OS independent.
> We can change the look and feel in Swing which is not possible in AWT.
> Swing takes less memory compared to AWT.
> For drawing AWT uses screen rendering where Swing uses double buffering.
What are heavy weight components?
A Heavyweight component is basically associated with its own native screen resource which is generally known as a peer.
What is lightweight component?
A Lightweight component is the basically one that “borrows” the screen resource of an ancestor , which means it has no native resource of its own — so it’s “lighter”.
What is an event in Swing?
Event is basically as Changing the state of an object is called an event.
What is an event handler in swing?
An Event handler is basically a part of a computer program created to tell the program how to act in response to a specific event.
What is a layout manager?
A layout manager is an object that is used to organize components in a container.
What is clipping?
Clipping is the basically the process of confining paint operations to a limited area or shape.
Which containers use a border Layout as their default layout in swing?
Many containers are there :
> The window,
> Frame and
> Dialog classes use a border layout as their default layout.
What is the preferred size of a component?
The preferred size of a component is the minimum component size, which will be allow the component to display normally.
Which containers use a FlowLayout as their default layout?
The Panel and Applet classes use the FlowLayout as their default layout.
Which method of the Component class is used to set the position and size of a component?
Method of the Component class is used to set the position and size of a component. hat is defined as :
What is the What is the difference between invokeAndWait() and invokeLater()?
Many diff are there which is defined as :
> InvokeAndWait() method : in swing is synchronous. It blocks until Runnable task is complete.
> InvokeLater() method : in swing is asynchronous. It posts an action event to the event queue and returns immediately. It will not wait for the task to complete.
What is an applet?
Applet is basically a java program that runs inside a web browser.
What is the difference between applications and applets?
Many diff are there :
> Application must be run explicitly within Java Virtual Machine whereas applet loads and runs itself automatically in a java-enabled browser. Application starts execution with its main method whereas applet starts execution with its init method.
> Application can run with or without graphical user interface whereas applet must run within a graphical user interface. In order to run an applet we need a java enabled web browser or an appletviewer.
When we should go for codebase in applet?
If the applet class is not in the same directory,when we used to codebase.
What is the lifecycle of an applet?
An Applet is basically life cycle is defined as :
> Init( ) method : called when an applet is first loaded.
> Start( ) method : called each time an applet is started .
> Paint( ) method : called when the applet is minimized or maximized .
> Stop( ) method : called when the browser moves off the applet’s page.
> Destroy( ) method : called when the browser is finished with the applet.
Which method is used for setting security in applets?
The Method is used for setting security in applets which is defined as :
What is an event and what are the models available for event handling?
Changing the state of an object is called an event. An event is an event object that describes a state of change. In other words, event occurs when an action is generated, like pressing a key on keyboard, clicking mouse, etc. There different types of models for handling events are event-inheritance model and event-delegation model
What are the advantages of the event-delegation model over the event-inheritance model?
Event-delegation model has two advantages over event-inheritance model.
=> Event delegation model enables event handling by objects other than the ones that generate the events. This allows a clean separation between a component’s design and its use.
=> It performs much better in applications where many events are generated. This performance improvement is due to event-delegation model does not have to be repeatedly process unhandled events as is the case of the event-inheritance.
Can a class be it’s own event handler? Explain how to implement this?
Sure.a Class can be its own event handler. For an example could be a class that extends Jbutton and implements ActionListener. In the actionPerformed method, put the code to perform when the button is pressed.
Why does JComponent have add() and remove() methods but Component does not?
JComponent have add() and remove() methods but Component does not because JComponent is a subclass of Container, and can contain other components and jcomponents.
How would you create a button with rounded edges?
There’s 2 ways to create a button with rounded edges.
> The first thing is to know that a JButton’s edges are drawn by a Border. so we can override the Button’s paintComponent or Graphics method and draw a circle or rounded rectangle and turn off the border. Or we can create a custom border that draws a circle or rounded rectangle around any component and set the button’s border to it.
What is the difference between the ‘Font’ and ‘FontMetrics’ class?
Many diff are there which is defined as :
> The Font Class is used to render ‘glyphs’, The characters we see on the screen.
> FontMetrics encapsulates information about a specific font on a specific Graphics object.
What class is at the top of the AWT event hierarchy?
java.awt.AWTEvent is that class which is at the top of the AWT event hierarchy. if they say java.awt.Event, they haven’t deal with swing or AWT in a while.
Explain how to render an HTML page using only Swing?
HTML page is bassically render the page using the JEditorPane or JTextPane and set it with the HTMLEditorKit, and load it that the use of swing in HTML pages.
How would you detect a keypress in a JComboBox?
“KeyListner in a JComboBox” is the abssically tyoe of the trick . many programmer is said thet: “add the keyListner in a JComboBox “. But its main use in the ” add the keyListner in a JComboBox as a editor component.
Why should the implementation of any Swing callback (like a listener) execute quickly?
Any swing callback execute quickly should be implementation Because callbacks are invoked by the event dispatch thread which will be blocked processing other events for as long as our method takes to execute.
In what context should the value of Swing components be updated directly?
Any ther context is not thread safe. But in callback methods , Swing components should be updated directly only in the context.In callback methods invoked from the event dispatch thread.
Why would you use SwingUtilities.invokeAndWait or SwingUtilities.invokeLater?
I want to update a Swing component but I’m not in a callback. If I want the update to happen immediately or perhaps for a progress bar component, then I’d use invokeAndWait. If I don’t care when the update occurs, I’d use invokeLater.
If your UI seems to freeze periodically, what might be a likely reason?
A callback implementation like ActionListener.actionPerformed or MouseListener.mouseClicked is taking a long time to execute thereby blocking the event dispatch thread from processing other UI events.