22 package com.realtime.crossfire.jxclient.gui.button;
27 import java.awt.Color;
28 import java.awt.Dimension;
30 import java.awt.Graphics;
31 import java.awt.Image;
32 import java.awt.Transparency;
33 import java.awt.image.BufferedImage;
34 import org.jetbrains.annotations.NotNull;
35 import org.jetbrains.annotations.Nullable;
121 public GUIButton(@NotNull
final TooltipManager tooltipManager, @NotNull
final GUIElementListener elementListener, @NotNull
final String
name, @NotNull
final BufferedImage imageUp, @NotNull
final BufferedImage imageDown, @Nullable
final String text, @Nullable
final Font font, @Nullable
final Color color,
final int textX,
final int textY,
final boolean autoRepeat, @NotNull
final CommandList commandList) {
122 super(tooltipManager, elementListener, name, Transparency.TRANSLUCENT, autoRepeat, commandList);
123 final int preferredWidth = imageUp.getWidth();
124 if (preferredWidth != imageDown.getWidth()) {
125 throw new IllegalArgumentException(
"preferredWidth="+preferredWidth+
", imageWidth="+imageDown.getWidth());
127 final int preferredHeight = imageUp.getHeight();
128 if (preferredHeight != imageDown.getHeight()) {
129 throw new IllegalArgumentException(
"preferredHeight="+preferredHeight+
", imageHeight="+imageDown.getHeight());
138 preferredSize =
new Dimension(preferredWidth, preferredHeight);
154 super.paintComponent(g);
155 g.drawImage(
isActive() ? imageDown : imageUp, 0, 0, null);
156 if (text != null && font != null && color != null) {
159 g.drawString(text, textX, textY);
169 return new Dimension(preferredSize);
Listener for GUIElement related events.
final TooltipManager tooltipManager
The TooltipManager to update.
final GUIElementListener elementListener
The GUIElementListener to notify.
void setChanged()
Records that the contents have changed and must be repainted.
final String name
The name of this element.
A list of GUICommand instances.
boolean isActive()
Returns whether a GUI element is active.