Crossfire JXClient, Trunk
AbstractLabel.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 
29 import java.awt.Color;
30 import java.awt.Font;
31 import java.awt.Graphics;
32 import java.awt.image.BufferedImage;
33 import javax.swing.ImageIcon;
34 import org.jetbrains.annotations.NotNull;
35 import org.jetbrains.annotations.Nullable;
36 
43 public abstract class AbstractLabel extends AbstractGUIElement {
44 
48  private static final long serialVersionUID = 1;
49 
53  @NotNull
54  private String text;
55 
59  @NotNull
60  private final Font textFont;
61 
65  @NotNull
66  private final Color textColor;
67 
71  @NotNull
72  private final Color textHighlightColor;
73 
77  @Nullable
78  private final ImageIcon backgroundImage;
79 
84  @Nullable
85  private final Color backgroundColor;
86 
90  private boolean textHighlight;
91 
106  protected AbstractLabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final String text, @NotNull final Font textFont, @NotNull final Color textColor, @NotNull final Color textHighlightColor, @Nullable final BufferedImage backgroundPicture, @Nullable final Color backgroundColor, @NotNull final GuiFactory guiFactory) {
108  this.text = text;
109  this.textFont = textFont;
110  this.textColor = textColor;
111  this.textHighlightColor = textHighlightColor;
112  backgroundImage = backgroundPicture == null ? null : new ImageIcon(backgroundPicture);
113  this.backgroundColor = backgroundColor;
114  }
115 
120  public void setText(@NotNull final String text) {
121  if (!this.text.equals(text)) {
122  this.text = text;
123  textChanged();
124  }
125  }
126 
131  public void setTextHighlight(final boolean textHighlight) {
132  if (this.textHighlight != textHighlight) {
133  this.textHighlight = textHighlight;
134  textChanged();
135  }
136  }
137 
142  protected void textChanged() {
143  revalidate();
144  }
145 
150  @NotNull
151  protected String getText() {
152  return text;
153  }
154 
159  @NotNull
160  protected Font getTextFont() {
161  return textFont;
162  }
163 
168  @NotNull
169  protected Color getTextColor() {
171  }
172 
173  @Override
174  public void paintComponent(@NotNull final Graphics g) {
175  super.paintComponent(g);
176 
177  if (backgroundImage != null) {
178  g.drawImage(backgroundImage.getImage(), 0, 0, null);
179  } else if (backgroundColor != null) {
180  g.setColor(backgroundColor);
181  g.fillRect(0, 0, getWidth(), getHeight());
182  }
183  }
184 
185 }
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textHighlight
boolean textHighlight
Definition: AbstractLabel.java:90
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.skin
com.realtime.crossfire.jxclient.skin.skin.GuiFactory
Definition: GuiFactory.java:41
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.AbstractLabel.serialVersionUID
static final long serialVersionUID
Definition: AbstractLabel.java:48
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.backgroundImage
final ImageIcon backgroundImage
Definition: AbstractLabel.java:78
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.getTextColor
Color getTextColor()
Definition: AbstractLabel.java:169
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.setTextHighlight
void setTextHighlight(final boolean textHighlight)
Definition: AbstractLabel.java:131
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
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.jxclient.gui.label.AbstractLabel.setText
void setText(@NotNull final String text)
Definition: AbstractLabel.java:120
com.realtime.crossfire
com.realtime
com
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement
Definition: AbstractGUIElement.java:37
com.realtime.crossfire.jxclient.gui.gui.AbstractGUIElement.guiFactory
final GuiFactory guiFactory
Definition: AbstractGUIElement.java:48
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.getText
String getText()
Definition: AbstractLabel.java:151
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textColor
final Color textColor
Definition: AbstractLabel.java:66
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.paintComponent
void paintComponent(@NotNull final Graphics g)
Definition: AbstractLabel.java:174
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.AbstractLabel
AbstractLabel(@NotNull final TooltipManager tooltipManager, @NotNull final GUIElementListener elementListener, @NotNull final String name, @NotNull final String text, @NotNull final Font textFont, @NotNull final Color textColor, @NotNull final Color textHighlightColor, @Nullable final BufferedImage backgroundPicture, @Nullable final Color backgroundColor, @NotNull final GuiFactory guiFactory)
Definition: AbstractLabel.java:106
com.realtime.crossfire.jxclient.gui.label.AbstractLabel.textChanged
void textChanged()
Definition: AbstractLabel.java:142
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