Crossfire JXClient, Trunk
GUILabel.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.gui.label;
24 
28 import java.awt.Color;
29 import java.awt.Font;
30 import java.awt.Graphics2D;
31 import java.awt.geom.RectangularShape;
32 import java.awt.image.BufferedImage;
33 import org.jetbrains.annotations.NotNull;
34 import org.jetbrains.annotations.Nullable;
35 
40 public abstract class GUILabel extends AbstractLabel {
41 
45  private static final long serialVersionUID = 1;
46 
50  @NotNull
51  private final Alignment textAlignment;
52 
67  protected GUILabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @Nullable final BufferedImage picture, @NotNull final String text, @NotNull final Font textFont, @NotNull final Color textColor, @NotNull final Color textHighlightColor, @Nullable final Color backgroundColor, @NotNull final Alignment textAlignment, @NotNull final GuiFactory guiFactory) {
69  this.textAlignment = textAlignment;
70  }
71 
72  @Override
73  protected void textChanged() {
74  super.textChanged();
75  setChanged();
76  }
77 
85  protected void drawLine(@NotNull final Graphics2D g, final int y0, final int h0, @NotNull final String text) {
86  g.setBackground(new Color(0, 0, 0, 0.0f));
87  g.setFont(getTextFont());
88  g.setColor(getTextColor());
89  final RectangularShape rectangle = getTextFont().getStringBounds(text, g.getFontRenderContext());
90  final int y = y0+(int)(Math.round(h0-rectangle.getHeight())/2-rectangle.getY());
91  switch (textAlignment) {
92  case LEFT:
93  g.drawString(text, 0, y);
94  break;
95 
96  case CENTER:
97  g.drawString(text, (int)Math.round((getWidth()-rectangle.getWidth())/2), y);
98  break;
99 
100  case RIGHT:
101  g.drawString(text, (int)Math.round(getWidth()-rectangle.getWidth()), y);
102  break;
103  }
104  }
105 
106 }
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.name
final String name
Definition: AbstractGUIElement.java:77
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.skin.skin
Definition: DefaultJXCSkin.java:23
com.realtime.crossfire.jxclient.gui.label.AbstractLabel
Definition: AbstractLabel.java:43
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.text
String text
Definition: AbstractLabel.java:54
com.realtime.crossfire.jxclient.gui.label.GUILabel
Definition: GUILabel.java:40
com.realtime.crossfire.jxclient.skin
com.realtime.crossfire.jxclient.skin.skin.GuiFactory
Definition: GuiFactory.java:41
com.realtime.crossfire.jxclient.gui.label.Alignment
Definition: Alignment.java:29
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textFont
final Font textFont
Definition: AbstractLabel.java:60
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textHighlightColor
final Color textHighlightColor
Definition: AbstractLabel.java:72
com.realtime.crossfire.jxclient.gui.label.GUILabel.drawLine
void drawLine(@NotNull final Graphics2D g, final int y0, final int h0, @NotNull final String text)
Definition: GUILabel.java:85
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.getTextColor
Color getTextColor()
Definition: AbstractLabel.java:169
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.getTextFont
Font getTextFont()
Definition: AbstractLabel.java:160
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.backgroundColor
final Color backgroundColor
Definition: AbstractLabel.java:85
com.realtime.crossfire.jxclient.gui.label.GUILabel.serialVersionUID
static final long serialVersionUID
Definition: GUILabel.java:45
com.realtime.crossfire.jxclient.gui
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.elementListener
final GUIElementListener elementListener
Definition: AbstractGUIElement.java:89
com.realtime.crossfire.jxclient.gui.gui.TooltipManager
Definition: TooltipManager.java:33
com.realtime.crossfire.jxclient.gui.gui
Definition: AbstractGUIElement.java:23
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.gui.label.GUILabel.GUILabel
GUILabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @Nullable final BufferedImage picture, @NotNull final String text, @NotNull final Font textFont, @NotNull final Color textColor, @NotNull final Color textHighlightColor, @Nullable final Color backgroundColor, @NotNull final Alignment textAlignment, @NotNull final GuiFactory guiFactory)
Definition: GUILabel.java:67
com.realtime.crossfire.jxclient.gui.label.GUILabel.textAlignment
final Alignment textAlignment
Definition: GUILabel.java:51
com
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.setChanged
void setChanged()
Definition: AbstractGUIElement.java:223
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.guiFactory
final GuiFactory guiFactory
Definition: AbstractGUIElement.java:48
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textColor
final Color textColor
Definition: AbstractLabel.java:66
com.realtime.crossfire.jxclient.gui.gui.GUIElementListener
Definition: GUIElementListener.java:32
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.tooltipManager
final TooltipManager tooltipManager
Definition: AbstractGUIElement.java:83
com.realtime.crossfire.jxclient.gui.label.GUILabel.textChanged
void textChanged()
Definition: GUILabel.java:73