Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » "hardcopy"

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
07.07.2003, 12:17 Uhr
alexus



Hallo zusammen!

mittels [ALT] + [DRUCK] kann man sich vom aktuellen Fenster eine "Bildkopie" machen. Ich bräuchte in meiner Java Anwendung so etwas ähnliches, dass man auf Knopfdruck eine Bildkopie des eigenen Programms erhält.
Hat vielleicht jemand eine Idee, wie man so etwas realisieren könnte..?

bin sehr dankbar für jede Hilfe !!!
--
Gruß Alexus

Dieser Post wurde am 07.07.2003 um 12:17 Uhr von alexus editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2003, 13:06 Uhr
typecast
aka loddab
(Operator)


Hallo alexus

sorry das ich so lange gebraucht habe, aber ich konnte in letzter Zeit nicht online gehen. Das was du vor hast funktioniert erst ab der Java Version 1.3. Da gib es die Klasse Robot.
Dem Konstruktor übergibst du den GraphicDevice deiner Klasse.
Dann kannst du mit der Methode createScreenCapture() einen Screenshot machen.

Robot findest du in java.awt.
Wenn du Code brauchst, dann melde dich nochmal.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.07.2003, 09:35 Uhr
alexus



Loddab !
ich bin sehr froh eine Antwort bekommen zu haben, Danke vielmals !!!
bis jetzt habe ich diese Aufgabe noch hinausgezögert, da ich nicht weiter wusste...
könntes Du mir doch ein Beispiel zeigen, wie man dies implemetiert ? und was kann ich mir unter einem "GraphicDevice" vorstellen ?

Danke nochmals !!!
--
Gruß Alexus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.07.2003, 10:32 Uhr
typecast
aka loddab
(Operator)


Hallo alexus

hab leider keine Zeit dir ein richtiges Beispiel zu machen. Deshalb nur mal was kurz ungetestet zusammengecoded:


Code:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;


public class sc
{
    public static void main(String[] args)
    {
    Frame test = new Frame("Screenshottest");
    test.setSize(400,300);
    test.setVisible(true);

    try
        {
        Robot r = new Robot(test.getGraphicsConfiguration().getDevice());
        BufferedImage buf = r.createScreenCapture(test.getBounds());
        } catch (AWTException e) {}
    }
}



Erst mal ein Fehler in meinem ersten Post: Es muss GraphicsDevice heißen. Die Klasse GraphicsDevice beschreibt die Umgebung in der du zeichnest. Dazu gehört zum Beispiel, die Aussage darüber auf was du zeichnest: Bildschirm, Image oder Drucker. Dazu gehört natürlich auch, die Größe des Fensters auf das du zeichnest, die Farbentiefe die du verwendest...
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 14.07.2003 um 10:33 Uhr von Loddab editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.07.2003, 12:23 Uhr
alexus



Danke für die schnelle Antwort !!!

habe es schon versucht zu implementieren und dachte mir dabei, dass ich es ja irgendwie im Clipboard zwischenspeichern müsste und bin nun dort stecken geblieben.. :-(

Code sieht bei mir bis jetzt so aus:

Code:
  public void createHardCopy ()
  {
    try {
                          // getToolkit() wird nicht erkannt
        Clipboard clip = getToolkit().getSystemClipboard();

        Robot r = new Robot(dlg.getGraphicsConfiguration).getDevice());
        BufferedImage buf = r.createScreenCapture(dlg.getBounds());
                          
                          // und wie kriegt man buf korrekt in die Zwischenablage ?
        // clip.setContents(cont, this);

    }
    catch (AWTException e) {
        JOptionPane.showMessageDialog( dlg,
            "Fehler beim Erstellen des Hardcopy.",
            "Achtung",
            JOptionPane.ERROR_MESSAGE);
    }
  }

Sorry, das mögen wahrscheinlich dumme fragen sein, ich progge sowas zum ersten mal.

Dankeschön im Voraus!!!
--
Gruß Alexus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.07.2003, 12:30 Uhr
typecast
aka loddab
(Operator)


Warum willst du das Bild im Clipboard speichern?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.07.2003, 13:10 Uhr
alexus



aber welche Möglichkeiten habe ich denn sonst das Bild irgendwo darzustellen ? könnte ich das eventuell auch direkt in den Drucker umleiten ?
--
Gruß Alexus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.07.2003, 13:18 Uhr
typecast
aka loddab
(Operator)


Was willst du den genau mit dem Bild machen?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
14.07.2003, 13:21 Uhr
alexus



Eigentlich dient es dazu um ausgedruckt zu werden !
( aber ich wäre auch schon froh, wenn ich das z.B.: in "Paint" einfügen könnte..)
--
Gruß Alexus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
14.07.2003, 13:27 Uhr
typecast
aka loddab
(Operator)


Wenn du es nur ausdrucken willst, dann solltest du dir mal die Mehtode
public void printComponents(Graphics g) der Containerklasse anschauen. Damit kannst du dir dann den ganzen Teil mit der Robot-Klasse sparen.
Wie du ein Bild abspeichern kannst, weiß ich noch nicht. Aber es gibt da einen guten Helfer www.google.de
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: