001 package market.swing;
002
003 import java.awt.Color;
004
005 import javax.swing.BorderFactory;
006 import javax.swing.JTextField;
007 import javax.swing.border.Border;
008
009 /**
010 * Factory class for borders, JTextFields und {@link JTFCheckable JTFCheckables}.
011 */
012 public class ComponentFactory {
013
014 public static final int LEFT = JTextField.LEFT;
015 public static final int CENTER = JTextField.CENTER;
016 public static final int RIGHT = JTextField.RIGHT;
017
018 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
019 // borders
020 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
021
022 /**
023 * Creates a line border out that leaves some space around the object to which the border is set.
024 * This is achieved with the help of an empty border between the object and the line border.
025 *
026 * @return the border.
027 */
028 public static Border createInsetBorder() {
029 return createInsetBorder(BorderFactory.createLineBorder(Color.gray), 5, 10, 10, 10);
030 }
031
032 /**
033 * Creates a title border out that leaves some space around the object to which the border is set.
034 * This is achieved with the help of an empty border between the object and the title border.
035 *
036 * @param label the caption of the title border.
037 * @return the border.
038 */
039 public static Border createInsetBorder(String label) {
040 return createInsetBorder(BorderFactory.createTitledBorder(label), 5, 10, 10, 10);
041 }
042
043 /**
044 * Creates a compound border out that leaves some space around the object to which the border is set.
045 * This is achieved with the help of an empty border between the object and the title border.
046 *
047 * @param border the outer border.
048 * @param top the top inset.
049 * @param left the left inset.
050 * @param bottom the bottom inset.
051 * @param right the right inset.
052 * @return the border.
053 */
054 public static Border createInsetBorder(Border border, int top, int left, int bottom, int right) {
055 return BorderFactory.createCompoundBorder(border, BorderFactory.createEmptyBorder(top, left, bottom,
056 right));
057 }
058
059 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
060 // JTextFields
061 /////////////////////////////////////////////////////////////////////////////////////////////////////////////
062
063 /**
064 * Creates a JTextField.
065 * @param text the text to be set.
066 * @param size the text field's size
067 * @param editable defines if text field is editable or not
068 * @param alignment the text's alignment in the text field (left, center, right)
069 * @param border defines if the text field should have a border.
070 * @return the created JTextField.
071 */
072 public static JTextField createTextField(String text, int size, boolean editable, int alignment,
073 boolean border) {
074 return createTextField(text, size, editable, alignment, Color.black, border);
075 }
076
077 /**
078 * Creates a JTextField.
079 * @param value the number to be set as text.
080 * @param size the text field's size
081 * @param editable defines if text field is editable or not
082 * @param alignment the text's alignment in the text field (left, center, right)
083 * @param border defines if the text field should have a border.
084 * @return the created JTextField.
085 */
086 public static JTextField createTextField(double value, int size, boolean editable, int alignment,
087 boolean border) {
088 return createTextField(Double.toString(value), size, editable, alignment, Color.black, border);
089 }
090
091 /**
092 * Creates a JTextField.
093 * @param text the text to be set.
094 * @param size the text field's size
095 * @param editable defines if text field is editable or not
096 * @param alignment the text's alignment in the text field (left, center, right)
097 * @param color the color of the text field's text.
098 * @param border defines if the text field should have a border.
099 * @return the created JTextField.
100 */
101 public static JTextField createTextField(String text, int size, boolean editable, int alignment,
102 Color color, boolean border) {
103 JTextField jtf = new JTextField(text, size);
104 jtf.setEditable(editable);
105 jtf.setHorizontalAlignment(alignment);
106 jtf.setForeground(color);
107 if (!border) {
108 jtf.setBorder(null);
109 }
110 return jtf;
111 }
112 }