001package org.jdesktop.swingx; 002 003import java.awt.Color; 004import java.awt.Component; 005import java.awt.Insets; 006import java.util.List; 007 008import javax.swing.JFormattedTextField; 009import javax.swing.JTextField; 010 011import org.jdesktop.swingx.prompt.BuddySupport; 012import org.jdesktop.swingx.prompt.PromptSupport; 013import org.jdesktop.swingx.prompt.BuddySupport.Position; 014import org.jdesktop.swingx.prompt.PromptSupport.FocusBehavior; 015 016 017/** 018 * {@link JFormattedTextField}, with integrated support for prompts and buddies. 019 * 020 * @see PromptSupport 021 * @see BuddySupport 022 * @author Peter Weishapl <petw@gmx.net> 023 * 024 */ 025public class JXFormattedTextField extends JFormattedTextField { 026 public JXFormattedTextField() { 027 this(null); 028 } 029 030 public JXFormattedTextField(String promptText) { 031 this(promptText, null); 032 } 033 034 public JXFormattedTextField(String promptText, Color promptForeground) { 035 this(promptText, promptForeground, null); 036 } 037 038 public JXFormattedTextField(String promptText, Color promptForeground, Color promptBackground) { 039 PromptSupport.init(promptText, promptForeground, promptBackground, this); 040 } 041 042 /** 043 * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent) 044 */ 045 public FocusBehavior getFocusBehavior() { 046 return PromptSupport.getFocusBehavior(this); 047 } 048 049 /** 050 * @see PromptSupport#getPrompt(javax.swing.text.JTextComponent) 051 */ 052 public String getPrompt() { 053 return PromptSupport.getPrompt(this); 054 } 055 056 /** 057 * @see PromptSupport#getForeground(javax.swing.text.JTextComponent) 058 */ 059 public Color getPromptForeground() { 060 return PromptSupport.getForeground(this); 061 } 062 063 /** 064 * @see PromptSupport#getForeground(javax.swing.text.JTextComponent) 065 */ 066 public Color getPromptBackground() { 067 return PromptSupport.getBackground(this); 068 } 069 070 /** 071 * @see PromptSupport#getFontStyle(javax.swing.text.JTextComponent) 072 */ 073 public Integer getPromptFontStyle() { 074 return PromptSupport.getFontStyle(this); 075 } 076 077 /** 078 * @see PromptSupport#getFocusBehavior(javax.swing.text.JTextComponent) 079 */ 080 public void setFocusBehavior(FocusBehavior focusBehavior) { 081 PromptSupport.setFocusBehavior(focusBehavior, this); 082 } 083 084 /** 085 * @see PromptSupport#setPrompt(String, javax.swing.text.JTextComponent) 086 */ 087 public void setPrompt(String labelText) { 088 PromptSupport.setPrompt(labelText, this); 089 } 090 091 /** 092 * @see PromptSupport#setForeground(Color, javax.swing.text.JTextComponent) 093 */ 094 public void setPromptForeground(Color promptTextColor) { 095 PromptSupport.setForeground(promptTextColor, this); 096 } 097 098 /** 099 * @see PromptSupport#setBackground(Color, javax.swing.text.JTextComponent) 100 */ 101 public void setPromptBackround(Color promptTextColor) { 102 PromptSupport.setBackground(promptTextColor, this); 103 } 104 105 /** 106 * @see PromptSupport#setFontStyle(Integer, 107 * javax.swing.text.JTextComponent) 108 */ 109 public void setPromptFontStyle(Integer fontStyle) { 110 PromptSupport.setFontStyle(fontStyle, this); 111 } 112 113 /** 114 * @see BuddySupport#setOuterMargin(JTextField, Insets) 115 */ 116 public void setOuterMargin(Insets margin) { 117 BuddySupport.setOuterMargin(this, margin); 118 } 119 120 /** 121 * @see BuddySupport#getOuterMargin(JTextField) 122 */ 123 public Insets getOuterMargin() { 124 return BuddySupport.getOuterMargin(this); 125 } 126 127 /** 128 * @see BuddySupport#add(Component, Position, JTextField) 129 */ 130 public void addBuddy(Component buddy, Position pos) { 131 BuddySupport.add(buddy, pos, this); 132 } 133 134 /** 135 * @see BuddySupport#addGap(int, Position, JTextField) 136 */ 137 public void addGap(int width, Position pos) { 138 BuddySupport.addGap(width, pos, this); 139 } 140 141 /** 142 * @see BuddySupport#getBuddies(Position, JTextField) 143 */ 144 public List<Component> getBuddies(Position pos) { 145 return BuddySupport.getBuddies(pos, this); 146 } 147 148 /** 149 * @see BuddySupport#removeAll(JTextField) 150 */ 151 public void removeAllBuddies() { 152 BuddySupport.removeAll(this); 153 } 154}