You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.9 KiB
109 lines
2.9 KiB
package de.memtext.icons; |
|
|
|
import java.awt.Color; |
|
import java.awt.Component; |
|
import java.awt.Graphics; |
|
|
|
import javax.swing.Icon; |
|
import javax.swing.JButton; |
|
|
|
public abstract class BasicIcon implements Icon { |
|
private int iconWidth = 16, iconHeight = 16; |
|
|
|
private Color color = Color.black; |
|
|
|
/** |
|
* @see javax.swing.Icon#getIconWidth() |
|
*/ |
|
@Override |
|
public int getIconWidth() { |
|
return iconWidth; |
|
} |
|
|
|
/** |
|
* @see javax.swing.Icon#getIconHeight() |
|
*/ |
|
@Override |
|
public int getIconHeight() { |
|
return iconHeight; |
|
} |
|
|
|
@Override |
|
public void paintIcon(Component c, Graphics g, int x, int y) { |
|
g.translate(x, y); |
|
if (c.isEnabled()) |
|
g.setColor(color); |
|
else |
|
g.setColor(Color.GRAY); |
|
myPaint(g); |
|
g.translate(-x, -y); |
|
} |
|
|
|
abstract void myPaint(Graphics g); |
|
|
|
void drawDoubleLine(Graphics g, int y) { |
|
if (y > getIconHeight() - 2) throw new IllegalArgumentException("can't draw that low"); |
|
g.drawLine(0, y, getIconWidth(), y); |
|
g.drawLine(0, y + 1, getIconWidth(), y + 1); |
|
} |
|
|
|
void drawArrowRight(Graphics g) { |
|
int midx = (int) Math.floor(getIconWidth() / 2); |
|
int midy = (int) Math.floor(getIconHeight() / 2); |
|
// mittellinie |
|
g.drawLine(0, midy - 1, getIconWidth(), midy - 1); |
|
g.drawLine(0, midy, getIconWidth(), midy); |
|
g.drawLine(0, midy + 1, getIconWidth(), midy + 1); |
|
|
|
g.drawLine(midx + 1, 1, getIconWidth(), midy - 1); |
|
g.drawLine(midx + 1, 2, getIconWidth(), midy); |
|
|
|
g.drawLine(midx + 1, getIconHeight() - 1, getIconWidth(), midy + 1); |
|
g.drawLine(midx + 1, getIconHeight() - 2, getIconWidth(), midy); |
|
|
|
} |
|
|
|
void drawArrowUp(Graphics g, int y) { |
|
int midx = (int) Math.floor(getIconWidth() / 2); |
|
int midy = (int) Math.floor(getIconHeight() / 2); |
|
g.drawLine(0, y + midy, midx, y); |
|
g.drawLine(midx, y, getIconWidth(), y + midy); |
|
g.drawLine(0, y + midy + 1, midx, y + 1); |
|
g.drawLine(midx, y + 1, getIconWidth(), y + midy + 1); |
|
|
|
} |
|
|
|
void drawArrowDown(Graphics g, int y) { |
|
int midx = (int) Math.floor(getIconWidth() / 2); |
|
int midy = (int) Math.floor(getIconHeight() / 2); |
|
g.drawLine(0, y, midx, midy + y); |
|
g.drawLine(midx, y + midy, getIconWidth(), y); |
|
g.drawLine(0, y + 1, midx, midy + y + 1); |
|
g.drawLine(midx, y + midy + 1, getIconWidth(), y + 1); |
|
|
|
} |
|
|
|
public static void main(String[] args) { |
|
de.memtext.widgets.MBFrame f = new de.memtext.widgets.MBFrame("test"); |
|
f.setCenter(new JButton("test", new ArrowRight())); |
|
f.pack(); |
|
f.show(); |
|
} |
|
|
|
public void setIconHeight(int i) { |
|
iconHeight = i; |
|
} |
|
|
|
public void setIconWidth(int i) { |
|
iconWidth = i; |
|
} |
|
|
|
public Color getColor() { |
|
return color; |
|
} |
|
|
|
public void setColor(Color color) { |
|
this.color = color; |
|
} |
|
|
|
}
|
|
|