Java 2D API

Programming has become more interactive with Java 2D
API. You can add images, figures, animation to your GUI and
even pass visual information with the help of Java 2D API. You can easily use 2D
within Swing components such as drop shadows since Swing is built on
2D package.
Pluggable Look and Feel
The Java Swing supports the plugging between the look and feel
features. The look and feel that means the dramatically changing in the component like
JFrame, JWindow, JDialog etc. for viewing it into the several types of window.
You can create your own look and feel using Synth package. There are many
of existing look and feels which are available to Swing programs provided by
GTK+ look and feel. Moreover, the look and feel of the platform can
be specified by the program while running and also to use Java look and feel can
be specified by it.
The pluggable look and feel indicates that the
whole look of the GUI element can be changed i.e. both the visual representation and
behavior of a GUI can be changed at the time of display of the component.
The new object which is created by the Swing application i.e. a new button by instantiating the JButton
class already knows that how to react to mouse movements and mouse clicks. Some
tasks are only performed by certain specialized classes like mouse handling
that is why there is no need to change the code to modify the look. However, if
the code is contained by the button itself that creates its visual
representation then this code would be required to be changed to modify the
look and feel of the GUI. Due to this reason only Swing provides custom look and
feel.
Lets tweak the example below that shows how pluggable look and feel affects programming.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class SwingDemo extends JFrame{
JLabel msgLabel;
public SwingDemo(){
super("Swing");
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
ActionListener al = new ActionListener(){
public void actionPerformed(ActionEvent ae){
msgLabel.setText(((JButton)ae.getSource()).getText());
}
};
JButton button;
JPanel buttonPanel = new JPanel();
buttonPanel.setBorder(new TitledBorder("Click a button"));
for (int i = 0; i < 3; i++){
button = new JButton("Button " + (i + 1));
button.addActionListener(al);
buttonPanel.add(button);
}
JPanel p = new JPanel(new BorderLayout());
p.setBorder(new EmptyBorder(8, 8, 8, 8));
msgLabel = new JLabel("No button pressed!");
p.add(msgLabel, BorderLayout.NORTH);
p.add(buttonPanel, BorderLayout.CENTER);
setContentPane(p);
pack();
setVisible(true);
}
public static void main(String[] args){
new SwingDemo();
}
}
|
|
Output of the program:
C:\newprgrm>javac SwingDemo.java
C:\newprgrm>java SwingDemo |
Download this example.


|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: