tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von genodeftest
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
499
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blackscreen Blackscreen ist offline Grünschnabel
    Registriert seit
    Apr 2011
    Beiträge
    2
    hi java coder!

    ich habe folgendes Problem ich lerne Java schon seit 2 jahren in da schule und jetzt haben wir mit Applets begonnen.

    Nun möchte ich in ein Applett einbauen das der Benutzer ein Bild auswählen kann und das das Bild dann links im Programm angezeigt wird ich verwende ein GridLayout in einem BorderLayout.

    Das der Benutzer die datei auswählen kann habe ich schon hinbekommen aber weiter weis ich leider nicht mehr

    das ist meine loadFile methode:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    public  String loadFile (String fileType){
            fd = new FileDialog(new Frame(), "Bitte auswählen:", FileDialog.LOAD);
            fd.setFile(fileType);
            fd.setDirectory(".");
            fd.show();
            return fd.getDirectory() + fd.getFile();
            }

    und der Button wenn man auf ihn klickt schaut so aus
    Code :
    1
    2
    
    bild = new Button("datei auswählen...");
            bild.addActionListener(new Buttons());

    ActionListener

    Code :
    1
    2
    3
    4
    5
    
    public void actionPerformed (ActionEvent a) {    
                if((bild ==  a.getSource()) ){
                 fileDir = loadFile("*jpg");
                }
                }

    ich hoffe ihr könnt mir helfen!
    (:

    mfg Blackscreen
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Mit Applets kannst du normalerweise nicht auf die Festplatte des Nutzers zugreifen, außer du lässt dein Applet signieren.

    Normalerweise kannst du die Bilder in ein ImageIcon laden, also so:
    Code java:
    1
    
    ImageIcon bild = new ImageIcon(fd.getFile());
    Dieses ImageIcon kannst du dann z.B. zu einem JLabel hinzufügen. Mehr dazu unter http://openbook.galileocomputing.de/...356327ff528f45

    Allerdings ist ImageIcon ein Swing-Component. Es ist aber sowieso ratsam, auf Swing umzusteigen. Die meisten Swing-Klassen heißen so wie die AWT-Klassen, nur mit einem 'J' davor, z.B.:
    AWT / Swing
    Button / JButton
    Panel / JPanel
    Component / JComponent
    FileDialog / JFileChooser


    2. Möglichkeit (wenn du auf Swing verzichten musst/willst oder das Bild bearbeiten bzw. resizen willst), dieser Weg ist deutlich aufwändiger:
    Du erzeugst ein BufferedImage (!! in einen try-catch-Block einschließen!)
    Code java:
    1
    
    BufferedImage image = ImageIO.read(new File(fd.getFile()));
    Dann musst du noch eine Klasse schreiben, die von einem AWT-Componenten erbt und in der Methode paint() mit Graphics.drawImage() das Bild malt. siehe: http://openbook.galileocomputing.de/...sel_20_006.htm
    Blackscreen bedankt sich. 
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    Blackscreen Blackscreen ist offline Grünschnabel
    Registriert seit
    Apr 2011
    Beiträge
    2
    danke hab jetzt alles auser das mit der neuen klasse funktioniert bei mir nicht..
    :S
     

  4. #4
    SE Tutorials.de Gastzugang
    Wie gnodeftest schon sagte : wenn dein Applet nicht signiert ist kann es auch nicht auf deine Platten zugreifen *sog. Sandbox für Applets*.
    Wenn du jetzt mit Swing arbeiten willst musst du schon den Root-Container von Swing verwenden, also halt nicht Applet sondern JApplet.
    Und auch deine setDirectory-Anweisung ist sehr komisch. Signier dein Applet mal und probier es aus : du wirst sehen das du in irgend einem Unterverzeichnis für TEMP-Daten landest. Besser wäre hier ein System.getPropery("user.home"); das den User erstmal in seine "Eigenen Dateien" leitet.

    Und was halt die Arbeit mit Swing angeht : du kannst natürlich nicht einfach vor alles einfach so ein großes J klatschen, du musst dir die äquivalenten Methoden raussuchen, also z.b. statt FileDialog JFileChooser *es gibt noch n paar mehr solcher klassen*
    Ein weiterer Unterschied von AWT zu Swing ist das sämtliche Klassen von JComponent abgeleitet sind. Desshalb kannst du auch in einem geringen Maße mit allen Klassen gleich umgehen *gut, man kann nun einem JLabel keinen ActionListener anhängen ... aber fast alles andere*.

    Am besten wäre es wenn du dein Applet so entwickelst das es halt erstmal als nomale Applikation voll funktionstüchtig is und baust es dann zu einem Applet um *z.b. in dem du den Inhalt der main-Methode in die start-methode packst*.
    Wenn du dann noch Dinge tun willst die Applet normalerweise verboten sind *also z.b. File-Zugriff , Sockets zu einem anderem Server als dem Heimat-Server *Server von dem das Applet geladen wurde** dann musst du es noch signieren.
    Dazu gibt es von Sun ein super Tutorial : http://download.oracle.com/javase/tu...signindex.html
    *erfordert halt das das Applet in einem Jar verpackt ist*
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 11.10.10, 08:05
  2. Java Applet Chat Programm?
    Von Dennis18 im Forum Java
    Antworten: 0
    Letzter Beitrag: 29.09.07, 15:32
  3. Antworten: 1
    Letzter Beitrag: 16.05.06, 12:12
  4. Antworten: 4
    Letzter Beitrag: 02.01.06, 10:59
  5. Java-Applet in eine Anwendung laden
    Von Kaiser206 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 05.07.05, 16:27

Stichworte