Wunderbar - ein forum. Hoffe hier kann man mir helfen, ich habe nämlich eine kleine Kopfnuss parat.
Folgendes: ich will ein Label erstellen, welches einen Trennstrich anzeigt. Dazu habe ich eine Klasse mit Icon implementiert, welche eben ein Icon zeichnet. Das Icon ist der Trennstrich. Eine .drawLine in grau von links nach rechts und eine .drawLine gleich darunter in weiß. Diese Striche sind ja wohl aus dem Windows-Startmenue bekannt, wer sich nicht gleich daran erinnert.
Diese eigene Icon-Klasse ist die Innere Klasse von meiner eigenen Label-Klasse (extend JLabel). Diese erstellt zu beginn anhand ihrer inneren Icon-Klasse ein icon. im konstruktor wird das jLabel dann eingerichtet mit setIcon, setXXXSize und setOpaque, dass dann eben der zweifarbige Strich zu sehen ist.
Meine frage: wie kann ich erfragen, ob der Layout-manager (gridbaglayout) der in einer Zeile das Label beherbergt, in der größe verändert, um dementsprechend die Länge des Striches des Icons zu verlängern ???
der bisherige code mit einer festen länge von 500:
an alle fleißigen poter, die mir helfen können schon im voraus einen riesendank
Folgendes: ich will ein Label erstellen, welches einen Trennstrich anzeigt. Dazu habe ich eine Klasse mit Icon implementiert, welche eben ein Icon zeichnet. Das Icon ist der Trennstrich. Eine .drawLine in grau von links nach rechts und eine .drawLine gleich darunter in weiß. Diese Striche sind ja wohl aus dem Windows-Startmenue bekannt, wer sich nicht gleich daran erinnert.
Diese eigene Icon-Klasse ist die Innere Klasse von meiner eigenen Label-Klasse (extend JLabel). Diese erstellt zu beginn anhand ihrer inneren Icon-Klasse ein icon. im konstruktor wird das jLabel dann eingerichtet mit setIcon, setXXXSize und setOpaque, dass dann eben der zweifarbige Strich zu sehen ist.
Meine frage: wie kann ich erfragen, ob der Layout-manager (gridbaglayout) der in einer Zeile das Label beherbergt, in der größe verändert, um dementsprechend die Länge des Striches des Icons zu verlängern ???
der bisherige code mit einer festen länge von 500:
Code:
public class SplitLineLabel
extends JLabel
{
SplitLineIcon ownIcon = new SplitLineIcon();
public SplitLineLabel()
{
setIcon(ownIcon);
setMinimumSize(new Dimension (500,2));
setMaximumSize(new Dimension (500,2));
setPreferredSize(new Dimension (500,2));
setOpaque(true);
}
class SplitLineIcon
implements Icon
{
int iIconWidth = 500;
public void paintIcon(Component c, Graphics g, int x, int y)
{
g.setColor(Color.gray);
g.drawLine(x, y, x + getIconWidth(), y);
g.setColor(Color.white);
g.drawLine(x, y + 1, x + getIconWidth(), y + 1);
//g.setColor(Color.black);
//g.drawRect(x, y, getIconWidth(), getIconHeight());
}
public int getIconWidth()
{
return iIconWidth;
}
public void setIconWidth(int iconWidth)
{
iIconWidth = iconWidth;
}
public int getIconHeight()
{
return 2;
}
}
}