< prev index next >

src/java.desktop/share/classes/java/awt/font/TextAttribute.java

Print this page




  79  *   will be ignored.
  80  *   <li>The identity of the value does not matter, only the actual
  81  *   value.  For example, {@code TextAttribute.WEIGHT_BOLD} and
  82  *   {@code Float.valueOf(2.0f)}
  83  *   indicate the same {@code WEIGHT}.
  84  *   <li>Attribute values of type {@code Number} (used for
  85  *   {@code WEIGHT}, {@code WIDTH}, {@code POSTURE},
  86  *   {@code SIZE}, {@code JUSTIFICATION}, and
  87  *   {@code TRACKING}) can vary along their natural range and are
  88  *   not restricted to the predefined constants.
  89  *   {@code Number.floatValue()} is used to get the actual value
  90  *   from the {@code Number}.
  91  *   <li>The values for {@code WEIGHT}, {@code WIDTH}, and
  92  *   {@code POSTURE} are interpolated by the system, which
  93  *   can select the 'nearest available' font or use other techniques to
  94  *   approximate the user's request.
  95  *
  96  * </UL>
  97  *
  98  * <h4>Summary of attributes</h4>
  99  * <table style="float:center;width:95%" class="striped">
 100  * <caption>Key, value type, principal constants, and
 101  * default value behavior of all TextAttributes</caption>

 102  * <thead>
 103  * <tr>
 104  * <th valign="TOP" style="text-align:center">Key</th>
 105  * <th valign="TOP" style="text-align:center">Value Type</th>
 106  * <th valign="TOP" style="text-align:center">Principal Constants</th>
 107  * <th valign="TOP" style="text-align:center">Default Value</th>
 108  * </tr>
 109  * </thead>
 110  * <tbody>
 111  * <tr>
 112  * <td valign="TOP">{@link #FAMILY}</td>
 113  * <td valign="TOP">String</td>
 114  * <td valign="TOP">See Font {@link java.awt.Font#DIALOG DIALOG},
 115  * {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},<br> {@link java.awt.Font#SERIF SERIF},
 116  * {@link java.awt.Font#SANS_SERIF SANS_SERIF}, and {@link java.awt.Font#MONOSPACED MONOSPACED}.
 117  * </td>
 118  * <td valign="TOP">"Default" (use platform default)</td>
 119  * </tr>
 120  * <tr>
 121  * <td valign="TOP">{@link #WEIGHT}</td>
 122  * <td valign="TOP">Number</td>
 123  * <td valign="TOP">WEIGHT_REGULAR, WEIGHT_BOLD</td>
 124  * <td valign="TOP">WEIGHT_REGULAR</td>
 125  * </tr>
 126  * <tr>
 127  * <td valign="TOP">{@link #WIDTH}</td>
 128  * <td valign="TOP">Number</td>
 129  * <td valign="TOP">WIDTH_CONDENSED, WIDTH_REGULAR,<br>WIDTH_EXTENDED</td>
 130  * <td valign="TOP">WIDTH_REGULAR</td>
 131  * </tr>
 132  * <tr>
 133  * <td valign="TOP">{@link #POSTURE}</td>
 134  * <td valign="TOP">Number</td>
 135  * <td valign="TOP">POSTURE_REGULAR, POSTURE_OBLIQUE</td>
 136  * <td valign="TOP">POSTURE_REGULAR</td>
 137  * </tr>
 138  * <tr>
 139  * <td valign="TOP">{@link #SIZE}</td>
 140  * <td valign="TOP">Number</td>
 141  * <td valign="TOP">none</td>
 142  * <td valign="TOP">12.0</td>
 143  * </tr>
 144  * <tr>
 145  * <td valign="TOP">{@link #TRANSFORM}</td>
 146  * <td valign="TOP">{@link TransformAttribute}</td>
 147  * <td valign="TOP">See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}</td>
 148  * <td valign="TOP">TransformAttribute.IDENTITY</td>
 149  * </tr>
 150  * <tr>
 151  * <td valign="TOP">{@link #SUPERSCRIPT}</td>
 152  * <td valign="TOP">Integer</td>
 153  * <td valign="TOP">SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB</td>
 154  * <td valign="TOP">0 (use the standard glyphs and metrics)</td>
 155  * </tr>
 156  * <tr>
 157  * <td valign="TOP">{@link #FONT}</td>
 158  * <td valign="TOP">{@link java.awt.Font}</td>
 159  * <td valign="TOP">none</td>
 160  * <td valign="TOP">null (do not override font resolution)</td>
 161  * </tr>
 162  * <tr>
 163  * <td valign="TOP">{@link #CHAR_REPLACEMENT}</td>
 164  * <td valign="TOP">{@link GraphicAttribute}</td>
 165  * <td valign="TOP">none</td>
 166  * <td valign="TOP">null (draw text using font glyphs)</td>
 167  * </tr>
 168  * <tr>
 169  * <td valign="TOP">{@link #FOREGROUND}</td>
 170  * <td valign="TOP">{@link java.awt.Paint}</td>
 171  * <td valign="TOP">none</td>
 172  * <td valign="TOP">null (use current graphics paint)</td>
 173  * </tr>
 174  * <tr>
 175  * <td valign="TOP">{@link #BACKGROUND}</td>
 176  * <td valign="TOP">{@link java.awt.Paint}</td>
 177  * <td valign="TOP">none</td>
 178  * <td valign="TOP">null (do not render background)</td>
 179  * </tr>
 180  * <tr>
 181  * <td valign="TOP">{@link #UNDERLINE}</td>
 182  * <td valign="TOP">Integer</td>
 183  * <td valign="TOP">UNDERLINE_ON</td>
 184  * <td valign="TOP">-1 (do not render underline)</td>
 185  * </tr>
 186  * <tr>
 187  * <td valign="TOP">{@link #STRIKETHROUGH}</td>
 188  * <td valign="TOP">Boolean</td>
 189  * <td valign="TOP">STRIKETHROUGH_ON</td>
 190  * <td valign="TOP">false (do not render strikethrough)</td>
 191  * </tr>
 192  * <tr>
 193  * <td valign="TOP">{@link #RUN_DIRECTION}</td>
 194  * <td valign="TOP">Boolean</td>
 195  * <td valign="TOP">RUN_DIRECTION_LTR<br>RUN_DIRECTION_RTL</td>
 196  * <td valign="TOP">null (use {@link java.text.Bidi} standard default)</td>
 197  * </tr>
 198  * <tr>
 199  * <td valign="TOP">{@link #BIDI_EMBEDDING}</td>
 200  * <td valign="TOP">Integer</td>
 201  * <td valign="TOP">none</td>
 202  * <td valign="TOP">0 (use base line direction)</td>
 203  * </tr>
 204  * <tr>
 205  * <td valign="TOP">{@link #JUSTIFICATION}</td>
 206  * <td valign="TOP">Number</td>
 207  * <td valign="TOP">JUSTIFICATION_FULL</td>
 208  * <td valign="TOP">JUSTIFICATION_FULL</td>
 209  * </tr>
 210  * <tr>
 211  * <td valign="TOP">{@link #INPUT_METHOD_HIGHLIGHT}</td>
 212  * <td valign="TOP">{@link java.awt.im.InputMethodHighlight},<br>{@link java.text.Annotation}</td>
 213  * <td valign="TOP">(see class)</td>
 214  * <td valign="TOP">null (do not apply input highlighting)</td>
 215  * </tr>
 216  * <tr>
 217  * <td valign="TOP">{@link #INPUT_METHOD_UNDERLINE}</td>
 218  * <td valign="TOP">Integer</td>
 219  * <td valign="TOP">UNDERLINE_LOW_ONE_PIXEL,<br>UNDERLINE_LOW_TWO_PIXEL</td>
 220  * <td valign="TOP">-1 (do not render underline)</td>
 221  * </tr>
 222  * <tr>
 223  * <td valign="TOP">{@link #SWAP_COLORS}</td>
 224  * <td valign="TOP">Boolean</td>
 225  * <td valign="TOP">SWAP_COLORS_ON</td>
 226  * <td valign="TOP">false (do not swap colors)</td>
 227  * </tr>
 228  * <tr>
 229  * <td valign="TOP">{@link #NUMERIC_SHAPING}</td>
 230  * <td valign="TOP">{@link java.awt.font.NumericShaper}</td>
 231  * <td valign="TOP">none</td>
 232  * <td valign="TOP">null (do not shape digits)</td>
 233  * </tr>
 234  * <tr>
 235  * <td valign="TOP">{@link #KERNING}</td>
 236  * <td valign="TOP">Integer</td>
 237  * <td valign="TOP">KERNING_ON</td>
 238  * <td valign="TOP">0 (do not request kerning)</td>
 239  * </tr>
 240  * <tr>
 241  * <td valign="TOP">{@link #LIGATURES}</td>
 242  * <td valign="TOP">Integer</td>
 243  * <td valign="TOP">LIGATURES_ON</td>
 244  * <td valign="TOP">0 (do not form optional ligatures)</td>
 245  * </tr>
 246  * <tr>
 247  * <td valign="TOP">{@link #TRACKING}</td>
 248  * <td valign="TOP">Number</td>
 249  * <td valign="TOP">TRACKING_LOOSE, TRACKING_TIGHT</td>
 250  * <td valign="TOP">0 (do not add tracking)</td>











































































































 251  * </tr>
 252  * </tbody>
 253  * </table>
 254  *
 255  * @see java.awt.Font
 256  * @see java.awt.font.TextLayout
 257  * @see java.text.AttributedCharacterIterator
 258  */
 259 public final class TextAttribute extends Attribute {
 260 
 261     // table of all instances in this class, used by readResolve
 262     private static final Map<String, TextAttribute>
 263             instanceMap = new HashMap<String, TextAttribute>(29);
 264 
 265     // For access from java.text.Bidi
 266     static {
 267         if (SharedSecrets.getJavaAWTFontAccess() == null) {
 268             SharedSecrets.setJavaAWTFontAccess(new JavaAWTFontAccessImpl());
 269         }
 270     }




  79  *   will be ignored.
  80  *   <li>The identity of the value does not matter, only the actual
  81  *   value.  For example, {@code TextAttribute.WEIGHT_BOLD} and
  82  *   {@code Float.valueOf(2.0f)}
  83  *   indicate the same {@code WEIGHT}.
  84  *   <li>Attribute values of type {@code Number} (used for
  85  *   {@code WEIGHT}, {@code WIDTH}, {@code POSTURE},
  86  *   {@code SIZE}, {@code JUSTIFICATION}, and
  87  *   {@code TRACKING}) can vary along their natural range and are
  88  *   not restricted to the predefined constants.
  89  *   {@code Number.floatValue()} is used to get the actual value
  90  *   from the {@code Number}.
  91  *   <li>The values for {@code WEIGHT}, {@code WIDTH}, and
  92  *   {@code POSTURE} are interpolated by the system, which
  93  *   can select the 'nearest available' font or use other techniques to
  94  *   approximate the user's request.
  95  *
  96  * </UL>
  97  *
  98  * <h4>Summary of attributes</h4>
  99  *
 100  * <table style="width:95%;margin: 0px auto" class="striped">
 101  * <caption>Key, value type, principal constants, and default value behavior of
 102  * all TextAttributes</caption>
 103  * <thead>
 104  *   <tr>
 105  *     <th scope="col">Key
 106  *     <th scope="col">Value Type
 107  *     <th scope="col">Principal Constants
 108  *     <th scope="col">Default Value

 109  * </thead>
 110  * <tbody>
 111  *   <tr>
 112  *     <th scope="row">{@link #FAMILY}
 113  *     <td>String
 114  *     <td>See Font {@link java.awt.Font#DIALOG DIALOG},
 115  *     {@link java.awt.Font#DIALOG_INPUT DIALOG_INPUT},
 116  *     <br>
 117  *     {@link java.awt.Font#SERIF SERIF},
 118  *     {@link java.awt.Font#SANS_SERIF SANS_SERIF}, and
 119  *     {@link java.awt.Font#MONOSPACED MONOSPACED}.
 120  *     <td>"Default" (use platform default)





























































































































 121  *   <tr>
 122  *     <th scope="row">{@link #WEIGHT}
 123  *     <td>Number
 124  *     <td>WEIGHT_REGULAR, WEIGHT_BOLD
 125  *     <td>WEIGHT_REGULAR
 126  *   <tr>
 127  *     <th scope="row">{@link #WIDTH}
 128  *     <td>Number
 129  *     <td>WIDTH_CONDENSED, WIDTH_REGULAR,<br>WIDTH_EXTENDED
 130  *     <td>WIDTH_REGULAR
 131  *   <tr>
 132  *     <th scope="row">{@link #POSTURE}
 133  *     <td>Number
 134  *     <td>POSTURE_REGULAR, POSTURE_OBLIQUE
 135  *     <td>POSTURE_REGULAR
 136  *   <tr>
 137  *     <th scope="row">{@link #SIZE}
 138  *     <td>Number
 139  *     <td>none
 140  *     <td>12.0
 141  *   <tr>
 142  *     <th scope="row">{@link #TRANSFORM}
 143  *     <td>{@link TransformAttribute}
 144  *     <td>See TransformAttribute {@link TransformAttribute#IDENTITY IDENTITY}
 145  *     <td>TransformAttribute.IDENTITY
 146  *   <tr>
 147  *     <th scope="row">{@link #SUPERSCRIPT}
 148  *     <td>Integer
 149  *     <td>SUPERSCRIPT_SUPER, SUPERSCRIPT_SUB
 150  *     <td>0 (use the standard glyphs and metrics)
 151  *   <tr>
 152  *     <th scope="row">{@link #FONT}
 153  *     <td>{@link java.awt.Font}
 154  *     <td>none
 155  *     <td>null (do not override font resolution)
 156  *   <tr>
 157  *     <th scope="row">{@link #CHAR_REPLACEMENT}
 158  *     <td>{@link GraphicAttribute}
 159  *     <td>none
 160  *     <td>null (draw text using font glyphs)
 161  *   <tr>
 162  *     <th scope="row">{@link #FOREGROUND}
 163  *     <td>{@link java.awt.Paint}
 164  *     <td>none
 165  *     <td>null (use current graphics paint)
 166  *   <tr>
 167  *     <th scope="row">{@link #BACKGROUND}
 168  *     <td>{@link java.awt.Paint}
 169  *     <td>none
 170  *     <td>null (do not render background)
 171  *   <tr>
 172  *     <th scope="row">{@link #UNDERLINE}
 173  *     <td>Integer
 174  *     <td>UNDERLINE_ON
 175  *     <td>-1 (do not render underline)
 176  *   <tr>
 177  *     <th scope="row">{@link #STRIKETHROUGH}
 178  *     <td>Boolean
 179  *     <td>STRIKETHROUGH_ON
 180  *     <td>false (do not render strikethrough)
 181  *   <tr>
 182  *     <th scope="row">{@link #RUN_DIRECTION}
 183  *     <td>Boolean
 184  *     <td>RUN_DIRECTION_LTR<br>RUN_DIRECTION_RTL
 185  *     <td>null (use {@link java.text.Bidi} standard default)
 186  *   <tr>
 187  *     <th scope="row">{@link #BIDI_EMBEDDING}
 188  *     <td>Integer
 189  *     <td>none
 190  *     <td>0 (use base line direction)
 191  *   <tr>
 192  *     <th scope="row">{@link #JUSTIFICATION}
 193  *     <td>Number
 194  *     <td>JUSTIFICATION_FULL
 195  *     <td>JUSTIFICATION_FULL
 196  *   <tr>
 197  *     <th scope="row">{@link #INPUT_METHOD_HIGHLIGHT}
 198  *     <td>{@link java.awt.im.InputMethodHighlight},
 199  *     <br>
 200  *     {@link java.text.Annotation}
 201  *     <td>(see class)
 202  *     <td>null (do not apply input highlighting)
 203  *   <tr>
 204  *     <th scope="row">{@link #INPUT_METHOD_UNDERLINE}
 205  *     <td>Integer
 206  *     <td>UNDERLINE_LOW_ONE_PIXEL,<br>UNDERLINE_LOW_TWO_PIXEL
 207  *     <td>-1 (do not render underline)
 208  *   <tr>
 209  *     <th scope="row">{@link #SWAP_COLORS}
 210  *     <td>Boolean
 211  *     <td>SWAP_COLORS_ON
 212  *     <td>false (do not swap colors)
 213  *   <tr>
 214  *     <th scope="row">{@link #NUMERIC_SHAPING}
 215  *     <td>{@link java.awt.font.NumericShaper}
 216  *     <td>none
 217  *     <td>null (do not shape digits)
 218  *   <tr>
 219  *     <th scope="row">{@link #KERNING}
 220  *     <td>Integer
 221  *     <td>KERNING_ON
 222  *     <td>0 (do not request kerning)
 223  *   <tr>
 224  *     <th scope="row">{@link #LIGATURES}
 225  *     <td>Integer
 226  *     <td>LIGATURES_ON
 227  *     <td>0 (do not form optional ligatures)
 228  *   <tr>
 229  *     <th scope="row">{@link #TRACKING}
 230  *     <td>Number
 231  *     <td>TRACKING_LOOSE, TRACKING_TIGHT
 232  *     <td>0 (do not add tracking)
 233  *   </tr>
 234  * </tbody>
 235  * </table>
 236  *
 237  * @see java.awt.Font
 238  * @see java.awt.font.TextLayout
 239  * @see java.text.AttributedCharacterIterator
 240  */
 241 public final class TextAttribute extends Attribute {
 242 
 243     // table of all instances in this class, used by readResolve
 244     private static final Map<String, TextAttribute>
 245             instanceMap = new HashMap<String, TextAttribute>(29);
 246 
 247     // For access from java.text.Bidi
 248     static {
 249         if (SharedSecrets.getJavaAWTFontAccess() == null) {
 250             SharedSecrets.setJavaAWTFontAccess(new JavaAWTFontAccessImpl());
 251         }
 252     }


< prev index next >