Hallo,
Code sagt bekanntlich mehr als tausend Worte:
[HIGHLIGHT="Java"]public static void main(String[] args){
//erstelle ein einfaches JFrame
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
//erstelle ein Bild in das ich zeichnen möchte
BufferedImage img = new BufferedImage(300,300, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 300, 300);
//Nun möchte ich das GESAMMTE JFrame in das Bild zeichnen
frame.paintAll(g);
//Zur Kontrolle zeige ich das Bild in einem zweiten JFrame an.
JFrame frame2 = new JFrame("Picture");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.add(new JScrollPane(new JLabel(new ImageIcon(img))));
frame2.setSize(300,300);
frame2.setLocation(200,0);
frame2.setVisible(true);
}[/HIGHLIGHT]
Und nun doch die tausend Worte:
Leider wird nur der Inhalt des JFrames gezeichnet. Es wird nicht der äussere "Container" oder die Decoration oder wie auch immer man den Bereich nennt gezeichnet.
Falls also jemand eine Idee hat, wie ich an die Bildinformationen eines JFrames komme, was zwar dargestellt wird (setVisible(true)), aber vielleicht nicht vollständig auf dem Schirm ist (Robot hilft mir also nicht unbedingt weiter), wäre ich sehr Dankbar.
Gruß
Dominik
Code sagt bekanntlich mehr als tausend Worte:
[HIGHLIGHT="Java"]public static void main(String[] args){
//erstelle ein einfaches JFrame
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);
//erstelle ein Bild in das ich zeichnen möchte
BufferedImage img = new BufferedImage(300,300, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 300, 300);
//Nun möchte ich das GESAMMTE JFrame in das Bild zeichnen
frame.paintAll(g);
//Zur Kontrolle zeige ich das Bild in einem zweiten JFrame an.
JFrame frame2 = new JFrame("Picture");
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.add(new JScrollPane(new JLabel(new ImageIcon(img))));
frame2.setSize(300,300);
frame2.setLocation(200,0);
frame2.setVisible(true);
}[/HIGHLIGHT]
Und nun doch die tausend Worte:
Leider wird nur der Inhalt des JFrames gezeichnet. Es wird nicht der äussere "Container" oder die Decoration oder wie auch immer man den Bereich nennt gezeichnet.
Falls also jemand eine Idee hat, wie ich an die Bildinformationen eines JFrames komme, was zwar dargestellt wird (setVisible(true)), aber vielleicht nicht vollständig auf dem Schirm ist (Robot hilft mir also nicht unbedingt weiter), wäre ich sehr Dankbar.
Gruß
Dominik
Zuletzt bearbeitet von einem Moderator: