Download - “Look and Feel” and Layouts
“Look and Feel” and Layouts
Feb 11, 2000
Pluggable Look and Feel
You can change the looking or “look and feel” of your Swing application easily into: Windows Macintosh Motif (X-windows) Java look
Big win for software portability in a sense that we can have a program which looks the same across platforms.
If you don’t care about how your program looks, Don’t bother!!!
public static void main(String[] args) { try { UIManager.setLookAndFeel( // Put your favorite Look and Feel here!!! ); } catch (Exception e) { }
new SwingApplication();}
•"javax.swing.plaf.metal.MetalLookAndFeel" •"com.sun.java.swing.plaf.windows.WindowsLookAndFeel”
•"com.sun.java.swing.plaf.motif.MotifLookAndFeel" •"javax.swing.plaf.mac.MacLookAndFeel"
Setting Look and Feel
Layouts
import java.awt.*;import java.awt.event.*;import javax.swing.*;
class LayoutDemo{ JFrame frame; Container pane;
LayoutDemo(){ frame = new JFrame("LayoutDemo"); pane = frame.getContentPane(); }
private void setupGUI(int w,int l) { addComponent(); frame.setSize(w,l); frame.setVisible(true); frame.pack(); }
private void addComponent() { // next page } public static void main(String args[]) { int w = Integer.parseInt(args[0]); int l = Integer.parseInt(args[1]); LayoutDemo demo = new LayoutDemo(); demo.setupGUI(w,l); }}
private void addComponent(){ pane.setLayout(new BorderLayout());
JCheckBox jck1 = new JCheckBox("this class is easy"); JCheckBox jck2 = new JCheckBox("this class is hard");
pane.add(jck1,"East"); pane.add(jck2,"South");
JButton b1 = new JButton("no touch"); JButton b2 = new JButton("please touch");
pane.add(b1,"North"); pane.add(b2,"West");
JLabel label = new JLabel(new ImageIcon("cab.gif")); pane.add(label,"Center");}
private void addComponent(){ pane.setLayout(new GridLayout(2,3));
JCheckBox jck1 = new JCheckBox("this class is easy"); JCheckBox jck2 = new JCheckBox("this class is hard");
pane.add(jck1); pane.add(jck2);
JButton b1 = new JButton("no touch"); JButton b2 = new JButton("please touch");
pane.add(b1); pane.add(b2);
JLabel label = new JLabel(new ImageIcon("cab.gif")); pane.add(label);}
private void addComponent(){ pane.setLayout(new FlowLayout());
JCheckBox jck1 = new JCheckBox("this class is easy"); JCheckBox jck2 = new JCheckBox("this class is hard");
pane.add(jck1); pane.add(jck2);
JButton b1 = new JButton("no touch"); JButton b2 = new JButton("please touch");
pane.add(b1); pane.add(b2);
JLabel label = new JLabel(new ImageIcon("cab.gif")); pane.add(label);}
private void addComponent(){ pane.setLayout(new BoxLayout(pane,BoxLayout.Y_AXIS)); ...
}
private void addComponent(){ pane.setLayout(new BoxLayout(pane,BoxLayout.X_AXIS)); ...
}
private void addComponent() {JPanel p1 = new JPanel();p1.setLayout(
new BoxLayout(p1,BoxLayout.Y_AXIS));JCheckBox jck1 = new JCheckBox("this class is easy");JCheckBox jck2 = new JCheckBox("this class is hard");p1.add(jck1);p1.add(jck2);
JPanel p2 = new JPanel();p2.setLayout(
new BoxLayout(p2,BoxLayout.Y_AXIS));JButton b1 = new JButton("no touch");JButton b2 = new JButton("please touch");p2.add(b1);p2.add(b2);
JLabel label = new JLabel( new ImageIcon("cab.gif"));
pane.add(label,"Center");pane.add(p1,"West");pane.add(p2,"East");
}