Java Tutorial/Swing/BorderFactory
Содержание
- 1 14. BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.red), BorderFactory.createMatteBorder(-1, -1, -1, -1, icon))
- 2 14. BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder())
- 3 14. BorderFactory.createEmptyBorder
- 4 14. BorderFactory.createEmptyBorder( 10)
- 5 14. BorderFactory.createEtchedBorder: create Etched Border
- 6 14. BorderFactory.createEtchedBorder: LOWERED EtchedBorder
- 7 14. BorderFactory.createLineBorder: create line border
- 8 14. BorderFactory.createLoweredBevelBorder
- 9 14. BorderFactory.createMatteBorder( 5, Color.BLUE)
- 10 14. BorderFactory.createRaisedBevelBorder
- 11 14. BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Title Lowered Etched Border")
- 12 14. BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLUE), "Title Line Border with color")
- 13 14. BorderFactory.createTitledBorder("Title Border")
- 14 14. BorderFactory in action
- 15 14. Introducing BorderFactory
- 16 14. Use BorderFactory to create borders
14. BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.red), BorderFactory.createMatteBorder(-1, -1, -1, -1, icon))
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
ImageIcon icon = new ImageIcon(Toolkit.getDefaultToolkit().getImage("matte.gif"));
simplePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory
.createLineBorder(Color.red), BorderFactory.createMatteBorder(-1, -1, -1, -1, icon)));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createCompoundBorder(BorderFactory.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder())
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory
.createRaisedBevelBorder(), BorderFactory.createLoweredBevelBorder()));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createEmptyBorder
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
JLabel simpleLabel = new JLabel("SIMPLE BORDERS", JLabel.CENTER);
simplePanel.add(simpleLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createEmptyBorder( 10)
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
JLabel titleLabel = new JLabel("TITLE BORDERS", JLabel.CENTER);
titleLabel.setForeground(Color.red.darker());
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createEtchedBorder: create Etched Border
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(1, 1, 5, 5));
JLabel etchedRasBorderLabel = new JLabel("Raised Etched Border", JLabel.CENTER);
etchedRasBorderLabel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
simplePanel.add(etchedRasBorderLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createEtchedBorder: LOWERED EtchedBorder
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
JLabel etchedLowBorderLabel = new JLabel("Lowered Etched Border", JLabel.CENTER);
etchedLowBorderLabel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
simplePanel.add(etchedLowBorderLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createLineBorder: create line border
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
JLabel lineBorderLabel = new JLabel("Line Border", JLabel.CENTER);
lineBorderLabel.setBorder(BorderFactory.createLineBorder(Color.black));
simplePanel.add(lineBorderLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createLoweredBevelBorder
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
JLabel bevelLowBorderLabel = new JLabel("Lowered Bevel Border", JLabel.CENTER);
bevelLowBorderLabel.setBorder(BorderFactory.createLoweredBevelBorder());
simplePanel.add(bevelLowBorderLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createMatteBorder( 5, Color.BLUE)
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createMatteBorder(2, 5, 2, 5, Color.BLUE));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createRaisedBevelBorder
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
JLabel bevelRasBorderLabel = new JLabel("Raised Bevel Border", JLabel.CENTER);
bevelRasBorderLabel.setBorder(BorderFactory.createRaisedBevelBorder());
simplePanel.add(bevelRasBorderLabel);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Title Lowered Etched Border")
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(EtchedBorder.LOWERED), "Title Lowered Etched Border"));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.BLUE), "Title Line Border with color")
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createLineBorder(Color.BLUE), "Title Line Border with color"));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory.createTitledBorder("Title Border")
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;
public class Main extends JFrame {
public Main() {
JPanel simplePanel = new JPanel(new GridLayout(7, 1, 5, 5));
simplePanel.setBorder(BorderFactory.createTitledBorder("Title Border"));
simplePanel.add(new JLabel("Examples"), JLabel.CENTER);
add(simplePanel);
}
public static void main(String[] argv) {
Main borderFactoryDemo = new Main();
borderFactoryDemo.setVisible(true);
borderFactoryDemo.pack();
}
}
14. BorderFactory in action
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
public class Borders {
public static void main(String[] args) {
JFrame frame = new JFrame("Borders");
int center = SwingConstants.CENTER;
JLabel labelOne = new JLabel("raised BevelBorder", center);
labelOne.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
JLabel labelTwo = new JLabel("EtchedBorder", center);
labelTwo.setBorder(BorderFactory.createEtchedBorder());
JLabel labelThree = new JLabel("MatteBorder", center);
labelThree.setBorder(BorderFactory.createMatteBorder(10, 10, 10, 10, Color.pink));
JLabel labelFour = new JLabel("TitledBorder", center);
Border etch = BorderFactory.createEtchedBorder();
labelFour.setBorder(BorderFactory.createTitledBorder(etch, "Title"));
JLabel labelFive = new JLabel("TitledBorder", center);
Border low = BorderFactory.createLoweredBevelBorder();
labelFive.setBorder(BorderFactory.createTitledBorder(low, "Title", TitledBorder.RIGHT,
TitledBorder.BOTTOM));
JLabel labelSix = new JLabel("CompoundBorder", center);
Border one = BorderFactory.createEtchedBorder();
Border two = BorderFactory.createMatteBorder(4, 4, 4, 4, Color.blue);
labelSix.setBorder(BorderFactory.createCompoundBorder(one, two));
frame.setLayout(new GridLayout(3, 2));
frame.add(labelOne);
frame.add(labelTwo);
frame.add(labelThree);
frame.add(labelFour);
frame.add(labelFive);
frame.add(labelSix);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
14. Introducing BorderFactory
BorderFactory class offers a series of static methods for creating predefined borders.
public class BorderFactory {
public static Border createBevelBorder(int type);
public static Border createBevelBorder(int type, Color highlight, Color shadow);
public static Border createBevelBorder(int type, Color highlightOuter, Color highlightInner, Color shadowOuter, Color shadowInner);
public static CompoundBorder createCompoundBorder();
public static CompoundBorder createCompoundBorder(Border outside, Border inside);
public static Border createEmptyBorder();
public static Border createEmptyBorder(int top, int left, int bottom, int right);
public static Border createEtchedBorder();
public static Border createEtchedBorder(Color highlight, Color shadow);
public static Border createEtchedBorder(int type);
public static Border createEtchedBorder(int type, Color highlight, Color shadow);
public static Border createLineBorder(Color color);
public static Border createLineBorder(Color color, int thickness);
public static Border createLoweredBevelBorder();
public static MatteBorder createMatteBorder(int top, int left, int bottom, int right, Color color);
public static MatteBorder createMatteBorder(int top, int left, int bottom, int right, Icon icon);
public static Border createRaisedBevelBorder();
public static TitledBorder createTitledBorder(Border border);
public static TitledBorder createTitledBorder(Border border, String title);
public static TitledBorder createTitledBorder(Border border, String title, int justification, int position);
public static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font);
public static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font, Color color);
public static TitledBorder createTitledBorder(String title);
}
14. Use BorderFactory to create borders
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Sun Microsystems nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
/*
* BorderDemo.java requires the following file: images/wavy.gif
*/
public class BorderDemo extends JPanel {
public BorderDemo() {
super(new GridLayout(1, 0));
// Keep references to the next few borders,
// for use in titles and compound borders.
Border blackline, raisedetched, loweredetched, raisedbevel, loweredbevel, empty;
// A border that puts 10 extra pixels at the sides and
// bottom of each pane.
Border paneEdge = BorderFactory.createEmptyBorder(0, 10, 10, 10);
blackline = BorderFactory.createLineBorder(Color.black);
raisedetched = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
loweredetched = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
raisedbevel = BorderFactory.createRaisedBevelBorder();
loweredbevel = BorderFactory.createLoweredBevelBorder();
empty = BorderFactory.createEmptyBorder();
// First pane: simple borders
JPanel simpleBorders = new JPanel();
simpleBorders.setBorder(paneEdge);
simpleBorders.setLayout(new BoxLayout(simpleBorders, BoxLayout.Y_AXIS));
addCompForBorder(blackline, "line border", simpleBorders);
addCompForBorder(raisedetched, "raised etched border", simpleBorders);
addCompForBorder(loweredetched, "lowered etched border", simpleBorders);
addCompForBorder(raisedbevel, "raised bevel border", simpleBorders);
addCompForBorder(loweredbevel, "lowered bevel border", simpleBorders);
addCompForBorder(empty, "empty border", simpleBorders);
// Second pane: matte borders
JPanel matteBorders = new JPanel();
matteBorders.setBorder(paneEdge);
matteBorders.setLayout(new BoxLayout(matteBorders, BoxLayout.Y_AXIS));
ImageIcon icon = createImageIcon("images/wavy.gif", "wavy-line border icon"); // 20x22
Border border = BorderFactory.createMatteBorder(-1, -1, -1, -1, icon);
if (icon != null) {
addCompForBorder(border, "matte border (-1,-1,-1,-1,icon)", matteBorders);
} else {
addCompForBorder(border, "matte border (-1,-1,-1,-1,<null-icon>)",
matteBorders);
}
border = BorderFactory.createMatteBorder(1, 5, 1, 1, Color.red);
addCompForBorder(border, "matte border (1,5,1,1,Color.red)", matteBorders);
border = BorderFactory.createMatteBorder(0, 20, 0, 0, icon);
if (icon != null) {
addCompForBorder(border, "matte border (0,20,0,0,icon)", matteBorders);
} else {
addCompForBorder(border, "matte border (0,20,0,0,<null-icon>)",
matteBorders);
}
// Third pane: titled borders
JPanel titledBorders = new JPanel();
titledBorders.setBorder(paneEdge);
titledBorders.setLayout(new BoxLayout(titledBorders, BoxLayout.Y_AXIS));
TitledBorder titled;
titled = BorderFactory.createTitledBorder("title");
addCompForBorder(titled, "default titled border"
+ " (default just., default pos.)", titledBorders);
titled = BorderFactory.createTitledBorder(blackline, "title");
addCompForTitledBorder(titled, "titled line border"
+ " (centered, default pos.)", TitledBorder.CENTER,
TitledBorder.DEFAULT_POSITION, titledBorders);
titled = BorderFactory.createTitledBorder(loweredetched, "title");
addCompForTitledBorder(titled, "titled lowered etched border"
+ " (right just., default pos.)", TitledBorder.RIGHT,
TitledBorder.DEFAULT_POSITION, titledBorders);
titled = BorderFactory.createTitledBorder(loweredbevel, "title");
addCompForTitledBorder(titled, "titled lowered bevel border"
+ " (default just., above top)", TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.ABOVE_TOP, titledBorders);
titled = BorderFactory.createTitledBorder(empty, "title");
addCompForTitledBorder(titled, "titled empty border"
+ " (default just., bottom)", TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.BOTTOM, titledBorders);
// Fourth pane: compound borders
JPanel compoundBorders = new JPanel();
compoundBorders.setBorder(paneEdge);
compoundBorders.setLayout(new BoxLayout(compoundBorders, BoxLayout.Y_AXIS));
Border redline = BorderFactory.createLineBorder(Color.red);
Border compound;
compound = BorderFactory.createCompoundBorder(raisedbevel, loweredbevel);
addCompForBorder(compound, "compound border (two bevels)", compoundBorders);
compound = BorderFactory.createCompoundBorder(redline, compound);
addCompForBorder(compound, "compound border (add a red outline)",
compoundBorders);
titled = BorderFactory.createTitledBorder(compound, "title",
TitledBorder.CENTER, TitledBorder.BELOW_BOTTOM);
addCompForBorder(titled, "titled compound border"
+ " (centered, below bottom)", compoundBorders);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Simple", null, simpleBorders, null);
tabbedPane.addTab("Matte", null, matteBorders, null);
tabbedPane.addTab("Titled", null, titledBorders, null);
tabbedPane.addTab("Compound", null, compoundBorders, null);
tabbedPane.setSelectedIndex(0);
String toolTip = new String(
"<html>Blue Wavy Line border art crew:<br> Bill Pauley<br> Cris St. Aubyn<br> Ben Wronsky<br> Nathan Walrath<br> Tommy Adams, special consultant</html>");
tabbedPane.setToolTipTextAt(1, toolTip);
add(tabbedPane);
}
void addCompForTitledBorder(TitledBorder border, String description,
int justification, int position, Container container) {
border.setTitleJustification(justification);
border.setTitlePosition(position);
addCompForBorder(border, description, container);
}
void addCompForBorder(Border border, String description, Container container) {
JPanel comp = new JPanel(new GridLayout(1, 1), false);
JLabel label = new JLabel(description, JLabel.CENTER);
comp.add(label);
comp.setBorder(border);
container.add(Box.createRigidArea(new Dimension(0, 10)));
container.add(comp);
}
/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path, String description) {
java.net.URL imgURL = BorderDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn"t find file: " + path);
return null;
}
}
/**
* Create the GUI and show it. For thread safety, this method should be
* invoked from the event-dispatching thread.
*/
private static void createAndShowGUI() {
// Create and set up the window.
JFrame frame = new JFrame("BorderDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create and set up the content pane.
BorderDemo newContentPane = new BorderDemo();
newContentPane.setOpaque(true); // content panes must be opaque
frame.setContentPane(newContentPane);
// Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
// Schedule a job for the event-dispatching thread:
// creating and showing this application"s GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}