B
ByeBye 190166
Hallo,
ich möchte verschiedene Farben zur Auswahl in einem JDialog anbieten.
Dazu sollen die Farben als Farbfelder angezeigt werden.
Hierzu habe ich ich mich für ein JPanel entschieden (Als Icon von JLabel geht es natürlich auch). Die Farbfelder sollen über MemoryImageSource erzeugt werden. Siehe unten.
Erzeugt momentan noch unabhängig von den Parameter einen Farbverlauf
Nun habe ich ein Image welches ich anzeigen möchte.
Dazu soll ein JPanel erzeugt werden indem ich das Image anzeige.
Geht es auch einfacher ? Grundsätzlich möchte ich kein Image laden, sondern eines erzeugen und anzeigen. Falls kein Farbverlauf gewünscht ist geht es natürlich auch über fillRect().
Tut mir leid, ich seh es nicht, ich versteh es nicht.
ich möchte verschiedene Farben zur Auswahl in einem JDialog anbieten.
Dazu sollen die Farben als Farbfelder angezeigt werden.
Hierzu habe ich ich mich für ein JPanel entschieden (Als Icon von JLabel geht es natürlich auch). Die Farbfelder sollen über MemoryImageSource erzeugt werden. Siehe unten.
Erzeugt momentan noch unabhängig von den Parameter einen Farbverlauf
Code:
Image createNewImage (EnumColors color, int Size)
{
Image theImage;
int pix[] = new int[Size*Size];
int index = 0;
for (int y = 0; y < Size; y++)
{
int red = (y * 255) / (Size - 1);
for (int x = 0; x < Size; x++)
{
int blue = (x * 255) / (Size - 1);
pix[index++] = (255 << 24) | (red << 16) | blue;
}
}
theImage = createImage (new MemoryImageSource (Size, Size, pix, 0, Size));
return (theImage);
}
Dazu soll ein JPanel erzeugt werden indem ich das Image anzeige.
Geht es auch einfacher ? Grundsätzlich möchte ich kein Image laden, sondern eines erzeugen und anzeigen. Falls kein Farbverlauf gewünscht ist geht es natürlich auch über fillRect().
Code:
private class WhitePanel extends JPanel
{
private WhitePanel()
{
Image theImage = createNewImage (EnumColors.BLACK, 20);
setLayout(new TableLayout(new double[][] {
{TableLayout.FILL},
{TableLayout.FILL}}));
Graphics g = this.getGraphics();
:confused:Und hier gibt es eine NullPointerException
g.drawImage(theImage, 0, 0,20,20, this);
}
}
Tut mir leid, ich seh es nicht, ich versteh es nicht.