Hihu,
zurzeit hab ich ein Problem mit dem GridLayout.
Mein Entwurf:
Ich hab ein JPanel auf dem ich vier AbstractButtons anzeigen will ..
sieht bei mir so aus:
Die Buttons sind auf ein JPanel gepackt,
damit ich ein Rahmen (EmptyBorder) setzten kann.
Wenn ich von dem ganzen JPanel ein Image machen möchte,
mit folgendem Quelltext ...
[highlight=Java]public BufferedImage getImage(JComponent componentToPrint)
{
// set size to preferred size
componentToPrint.setSize(componentToPrint.getPreferredSize());
componentToPrint.doLayout();
//componentToPrint.updateUI();
componentToPrint.paint(img.getGraphics());
return img.getSubimage(0, 0, componentToPrint.getWidth(), componentToPrint.getHeight());
}[/highlight]
.. sieht das Bild und mein Frame ohne repaint() wie folgt aus:
(Die graue Buttons sind jetzt nur Aussehen und nicht mein Problem)
Wie bekomme ich es hin,
das die aktuelle Größe des gesamten JPanel vom JFrame übertragen wird?
Wenn ich doLayout() aufrufe werden die Rahmen abgeschnitten,
ohne doLayout() wird nicht vom kompletten JPanel ein Image erzeugt.
Hat jemand einen Rat?
Wenn weitere Infos gebraucht werden,
einfach fragen
zurzeit hab ich ein Problem mit dem GridLayout.
Mein Entwurf:
Ich hab ein JPanel auf dem ich vier AbstractButtons anzeigen will ..
sieht bei mir so aus:
Die Buttons sind auf ein JPanel gepackt,
damit ich ein Rahmen (EmptyBorder) setzten kann.
Wenn ich von dem ganzen JPanel ein Image machen möchte,
mit folgendem Quelltext ...
[highlight=Java]public BufferedImage getImage(JComponent componentToPrint)
{
// set size to preferred size
componentToPrint.setSize(componentToPrint.getPreferredSize());
componentToPrint.doLayout();
//componentToPrint.updateUI();
componentToPrint.paint(img.getGraphics());
return img.getSubimage(0, 0, componentToPrint.getWidth(), componentToPrint.getHeight());
}[/highlight]
.. sieht das Bild und mein Frame ohne repaint() wie folgt aus:
(Die graue Buttons sind jetzt nur Aussehen und nicht mein Problem)
Wie bekomme ich es hin,
das die aktuelle Größe des gesamten JPanel vom JFrame übertragen wird?
Wenn ich doLayout() aufrufe werden die Rahmen abgeschnitten,
ohne doLayout() wird nicht vom kompletten JPanel ein Image erzeugt.
Hat jemand einen Rat?
Wenn weitere Infos gebraucht werden,
einfach fragen