Java Tutorial/Swing/TitiledBorder

Материал из Java эксперт
Перейти к: навигация, поиск

14. Change border text Justification alignment style

   <source lang="java">

import java.awt.Color; import javax.swing.BorderFactory; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; public class Main {

 public static void main(String[] argv) {
   LineBorder border = new LineBorder(Color.red);
   TitledBorder titledBorder = BorderFactory.createTitledBorder(border, "Title");
   
   // Or: DEFAULT_JUSTIFICATION, LEFT, RIGHT
   titledBorder.setTitleJustification(TitledBorder.CENTER);
 }

}</source>





14. Create a title border from another border

   <source lang="java">

import java.awt.Color; import javax.swing.BorderFactory; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; public class Main {

 public static void main(String[] argv) {
   LineBorder border = new LineBorder(Color.red);
   TitledBorder titledBorder = BorderFactory.createTitledBorder(border, "Title");
 }

}</source>





14. Creating TitledBorder through its constructors and helper method from BorderFactory

  1. A titled border is a combination of a title string and any of the borders.
  2. You control the position of the title with a justification.
  3. You can also specify the font and color of the title.
  4. To create a titled border, you need to specify the title and the border.
  5. If no border is specified, an etched border is used by default.



   <source lang="java">

public TitledBorder(Border border) Border titledBorder = new TitledBorder(lineBorder); public static TitledBorder createTitledBorder(Border border) Border titledBorder = BorderFactory.createTitledBorder(lineBorder);

public TitledBorder(String title) Border titledBorder = new TitledBorder("Hello"); public static TitledBorder createTitledBorder(String title) Border titledBorder = BorderFactory.createTitledBorder("Hello");

public TitledBorder(Border border, String title) Border titledBorder = new TitledBorder(lineBorder, "Hello"); public static TitledBorder createTitledBorder(Border border, String title) Border titledBorder = BorderFactory.createTitledBorder(lineBorder, "Hello");

public TitledBorder(Border border, String title, int justification, int position) Border titledBorder = new TitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM); public static TitledBorder createTitledBorder(Border border, String title, int justification, int position) Border titledBorder = BorderFactory.createTitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM);

public TitledBorder(Border border, String title, int justification, int position, Font font) Font font = new Font("Serif", Font.ITALIC, 12); Border titledBorder = new TitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM, font); public static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font) Font font = new Font("Serif", Font.ITALIC, 12); Border titledBorder = BorderFactory.createTitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM, font); public TitledBorder(Border border, String title, int justification, int position, Font font, Color color) Font font = new Font("Serif", Font.ITALIC, 12); Border titledBorder = new TitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM, font, Color.RED); public static TitledBorder createTitledBorder(Border border, String title, int justification, int position, Font font, Color color) Font font = new Font("Serif", Font.ITALIC, 12); Border titledBorder = BorderFactory.createTitledBorder(lineBorder, "Hello", TitledBorder.LEFT, TitledBorder.BELOW_BOTTOM, font, Color.RED);</source>





14. Customizing TitledBorder Look and Feel

Property StringObject TypeTitledBorder.fontFontTitledBorder.titleColorColorTitledBorder.borderBorder


14. Nested TitiledBorder

   <source lang="java">

import java.awt.BorderLayout; import java.awt.Container; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.border.TitledBorder; public class DoubleTitle {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Double Title");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   TitledBorder topBorder = BorderFactory.createTitledBorder("Top");
   topBorder.setTitlePosition(TitledBorder.TOP);
   
   TitledBorder doubleBorder = new TitledBorder(topBorder, "Bottom", TitledBorder.RIGHT,
       TitledBorder.BOTTOM);
   
   JButton doubleButton = new JButton();
   doubleButton.setBorder(doubleBorder);
   
   Container contentPane = frame.getContentPane();
   contentPane.add(doubleButton, BorderLayout.CENTER);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}</source>





14. Setting TitiledBorder Direction

   <source lang="java">

import java.awt.Color; import java.awt.Font; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.border.Border; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; public class ChangingTitleBorderDirection {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Sample Borders");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Border lineBorder = new LineBorder(Color.RED, 5);
   
   Font font = new Font("Serif", Font.ITALIC, 12);
   Border titledBorder = new TitledBorder(lineBorder, "Hello", TitledBorder.LEFT,
       TitledBorder.BELOW_BOTTOM, font, Color.RED);
   
   JLabel aLabel = new JLabel("Bevel");
   aLabel.setBorder(titledBorder);
   aLabel.setHorizontalAlignment(JLabel.CENTER);
   frame.add(aLabel);
   frame.setSize(400, 200);
   frame.setVisible(true);
 }

}</source>





14. Set title position

   <source lang="java">

import java.awt.Color; import javax.swing.BorderFactory; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; public class Main {

 public static void main(String[] argv) {
   LineBorder border = new LineBorder(Color.red);
   TitledBorder titledBorder = BorderFactory.createTitledBorder(border, "Title");
   
   // Or: DEFAULT_POSITION, ABOVE_TOP, TOP, ABOVE_BOTTOM, BOTTOM, BELOW_BOTTOM
   titledBorder.setTitlePosition(TitledBorder.BELOW_TOP);
 }

}</source>





14. TitleBorder Justification

   <source lang="java">

import java.awt.Container; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.border.TitledBorder; public class TitledJustBorder {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Justified Titled Borders");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   TitledBorder leftBorder = BorderFactory.createTitledBorder("Left");
   leftBorder.setTitleJustification(TitledBorder.LEFT);
   
   JButton leftButton = new JButton();
   leftButton.setBorder(leftBorder);
   
   TitledBorder rightBorder = BorderFactory.createTitledBorder("Right");
   rightBorder.setTitleJustification(TitledBorder.RIGHT);
   
   JButton rightButton = new JButton();
   rightButton.setBorder(rightBorder);
   
   TitledBorder centerBorder = BorderFactory.createTitledBorder("Center");
   centerBorder.setTitleJustification(TitledBorder.CENTER);
   
   JButton centerButton = new JButton();
   centerButton.setBorder(centerBorder);
   Container contentPane = frame.getContentPane();
   contentPane.setLayout(new GridLayout(3, 1));
   contentPane.add(leftButton);
   contentPane.add(rightButton);
   contentPane.add(centerButton);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>





14. TitleBorder Title Position

   <source lang="java">

import java.awt.Container; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.border.TitledBorder; public class TitledPostBorder {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Positioned Titled Borders");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   TitledBorder aboveTopBorder = BorderFactory.createTitledBorder("AboveTop");
   aboveTopBorder.setTitlePosition(TitledBorder.ABOVE_TOP);
   JButton aboveTopButton = new JButton();
   aboveTopButton.setBorder(aboveTopBorder);
   
   TitledBorder topBorder = BorderFactory.createTitledBorder("Top");
   topBorder.setTitlePosition(TitledBorder.TOP);
   JButton topButton = new JButton();
   topButton.setBorder(topBorder);
   
   TitledBorder belowTopBorder = BorderFactory.createTitledBorder("BelowTop");
   belowTopBorder.setTitlePosition(TitledBorder.BELOW_TOP);
   JButton belowTopButton = new JButton();
   belowTopButton.setBorder(belowTopBorder);
   
   TitledBorder aboveBottomBorder = BorderFactory.createTitledBorder("AboveBottom");
   aboveBottomBorder.setTitlePosition(TitledBorder.ABOVE_BOTTOM);
   JButton aboveBottomButton = new JButton();
   aboveBottomButton.setBorder(aboveBottomBorder);
   
   TitledBorder bottomBorder = BorderFactory.createTitledBorder("Bottom");
   bottomBorder.setTitlePosition(TitledBorder.BOTTOM);
   JButton bottomButton = new JButton();
   bottomButton.setBorder(bottomBorder);
   
   TitledBorder belowBottomBorder = BorderFactory.createTitledBorder("BelowBottom");
   belowBottomBorder.setTitlePosition(TitledBorder.BELOW_BOTTOM);
   JButton belowBottomButton = new JButton();
   belowBottomButton.setBorder(belowBottomBorder);
   
   Container contentPane = frame.getContentPane();
   contentPane.setLayout(new GridLayout(3, 2));
   contentPane.add(aboveTopButton);
   contentPane.add(aboveBottomButton);
   contentPane.add(topButton);
   contentPane.add(bottomButton);
   contentPane.add(belowTopButton);
   contentPane.add(belowBottomButton);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>





14. TitledBorder based on LineBorder

   <source lang="java">

import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.border.Border; import javax.swing.border.LineBorder; import javax.swing.border.TitledBorder; public class ATitledBorder {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Titled Borders");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   Border thisBorder = BorderFactory.createTitledBorder("Easy");
   
   Border thatBorder1 = new LineBorder(Color.RED);
   Border thatBorder2 = new TitledBorder(thatBorder1, "Harder");
   
   Font font = new Font("Serif", Font.ITALIC, 12);
   Border thatBorder = new TitledBorder(thatBorder2, "Harder", TitledBorder.LEFT,
       TitledBorder.ABOVE_BOTTOM, font, Color.RED);
   
   JButton thisButton = new JButton("Easy");
   thisButton.setBorder(thisBorder);
   
   JButton thatButton = new JButton("Harder");
   thatButton.setBorder(thatBorder);
   
   Container contentPane = frame.getContentPane();
   contentPane.setLayout(new GridLayout(1, 2));
   contentPane.add(thisButton);
   contentPane.add(thatButton);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>