GUI anstatt Bild schwarzes Rechteck gespeichert

Timmy21

Mitglied
Hallo, ich möchte ein Bild aus einer Datei laden, verkleinert anzeigen, und anschließend verkleinert abspeichern.(selber programmieren und nicht sämtliches ergooglen) Leider wird nur ein schwarzes Rechteck abgespeichert, und ich Newb weiß jetzt natürlich nicht, wieso. Nicht wundern über die Kommentare, das waren alte Programmteile die ich nicht löschen wollte. Der fehler liegt meines Erachtens in
Java:
if (e.getSource()==speichern){
.
Außerdem wäre es nett, wenn der Unterschied zwischen Image, ImageIcon, Buffered image etc. kurz erläutert würde,
ich bin schonmal dankbar im voraus :applaus:

Java:
import javax.swing.*;
import java.awt.*;
import javax.swing.filechooser.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;


public class BildProgramm implements ActionListener,FocusListener{
  JFrame jframe;
  JLabel jlabel;
  JPanel jpanel;
  Button button;
  Button speichern;
  BufferedImage image;
  int x;
  int y;
  boolean zeichnen=false;
  ImageIcon imageicon;
  JTextField  jtextfield1;
  JTextField  jtextfield2;
  //JTextField  jtextfield3;
  
  public void actionPerformed (ActionEvent e){
    if (e.getSource()==button){
      JFileChooser chooser = new JFileChooser();
      FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "JPG & PNG Images", "jpg", "png");
      chooser.setFileFilter(filter);
      int returnVal = chooser.showOpenDialog(jpanel);
      if(returnVal == JFileChooser.APPROVE_OPTION) {
        System.out.println("Diese Datei wird geöffnet: " +
            chooser.getSelectedFile().getName());
        
      
      System.out.println(chooser.getSelectedFile().getName());
      
     
      try{
        x=Integer.parseInt( jtextfield1.getText());
        y=Integer.parseInt( jtextfield2.getText());
        image = ImageIO.read(chooser.getSelectedFile());
        
        imageicon.setImage(image.getScaledInstance(x,y,Image.SCALE_FAST));
        jlabel.setIcon(imageicon);
        jpanel.add(jlabel);
        jframe.validate();
        
        
        
                
      
      }
      catch(IOException ex){
        ex.printStackTrace();
        System.out.println("Fehler aufgetreten");
      }
          
      
      }

    
    } 
    
    if (e.getSource()==speichern){
      try{
        JFileChooser chooser2 = new JFileChooser();
        int returner=chooser2.showDialog(jpanel,"wo speichern");
        if(returner==JFileChooser.APPROVE_OPTION){
          chooser2.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
          String path = chooser2.getSelectedFile().getPath();
          System.out.println(path);
          path = path + ".jpg" ;
          System.out.println(path);
          Image richtigesimage = image.getScaledInstance(x,y,Image.SCALE_SMOOTH);
          
          BufferedImage bimage= new BufferedImage(x,y,BufferedImage.TYPE_INT_RGB);
          Graphics g=bimage.getGraphics();
          
          g.drawImage(richtigesimage,x,y,null);
          g.dispose();
          jpanel.paint(g);
          ImageIO.write(bimage,"jpg", new File(path));
          
        
        }       
      }
      catch(IOException exc){
        System.out.println("Fehler");
        exc.printStackTrace();
      }     
    }
  }     
       
  public void focusGained(FocusEvent e){
    if (e.getSource()==jtextfield1)
      jtextfield1.setText("");
    if (e.getSource()==jtextfield2)
      jtextfield2.setText("");
   // if (e.getSource()==jtextfield3)
    //  jtextfield3.setText("");
  }
  public void focusLost(FocusEvent e){
   if (e.getSource()==jtextfield1 && jtextfield1.getText()=="")
      jtextfield1.setText("Breite eingeben");
   if (e.getSource()==jtextfield1 && jtextfield1.getText()=="")
      jtextfield2.setText("Höhe eingeben");
  // if (e.getSource()==jtextfield3 && jtextfield3.getText()=="")
      //jtextfield3.setText("Dateinamen eingeben");
  }
    
    
    
    public void los(){
    jframe = new JFrame();
    jpanel = new JPanel();
    button = new Button("Bild auswählen");
    imageicon = new ImageIcon();
    jlabel = new JLabel();
    speichern= new Button("wo speichern");
    jtextfield1 = new JTextField("Breite eingeben");
    jtextfield2 = new JTextField("Höhe eingeben");
    //jtextfield3 = new JTextField("Dateinamen eingeben");
    jtextfield1.addFocusListener(this);
    jtextfield2.addFocusListener(this);
   // jtextfield3.addFocusListener(this);
    button.addActionListener(this);
    speichern.addActionListener(this);
   
    jpanel.add(button);
    jpanel.add(speichern);
    jframe.setSize(500,500);
    jframe.add(jpanel);
    jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jpanel.add(jtextfield1);
    jpanel.add(jtextfield2);
    //jpanel.add(jtextfield3);
    jframe.setVisible(true);
 
  }
  
  public static void main (String[]args){
    BildProgramm bildprogramm = new BildProgramm();
    bildprogramm.los();
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R App soll selbstständig reagieren, anstatt via Models Java Basics - Anfänger-Themen 0
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
U buttonarray[this] anstatt buttonarray[index] ? Java Basics - Anfänger-Themen 12
M Anstatt 1 int Rückgabewert, mehrere Rückgaben mit Arraylist Java Basics - Anfänger-Themen 8
J Array anstatt Begriffe als Indizes Java Basics - Anfänger-Themen 14
I Erste Schritte while anstatt for, if und break Java Basics - Anfänger-Themen 10
K Was benutzen anstatt this? Java Basics - Anfänger-Themen 9
K Polymorphie Objektreferenz als Superklasse anstatt des Objekttypes Java Basics - Anfänger-Themen 12
B List list - anstatt ArrayList list = new ArrayList Java Basics - Anfänger-Themen 10
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
A POI Einlesen Excel Workbook aus BLOB oder von URL anstatt aus Filesystem ? Java Basics - Anfänger-Themen 3
P (Arbeitstag-) Calendar - 9 anstatt 24 Stunden Java Basics - Anfänger-Themen 12
dl85hej Zeitsitschleife anstatt Timer Java Basics - Anfänger-Themen 5
B String.equals(Object) anstatt "=" Java Basics - Anfänger-Themen 3
Horst79 Temp Datei cachen anstatt physikalische Datei im root Verz? Java Basics - Anfänger-Themen 8
G start-oder paint-Methode anstatt Event-Handling-Methode? Java Basics - Anfänger-Themen 3
S StringBuffer anstatt += Java Basics - Anfänger-Themen 8
C Servlets: doPost() etc. anstatt service() Java Basics - Anfänger-Themen 4
C Anstatt Spalte, Zeile mit Comparator sortieren . Java Basics - Anfänger-Themen 5
D contains bei JTextArea anstatt bei JTextField Java Basics - Anfänger-Themen 8
H private anstatt public Java Basics - Anfänger-Themen 2
C Wie kann ich Grichische Buchstaben ausgeben anstatt latein? Java Basics - Anfänger-Themen 2
M Ausgabe in String anstatt auf Stream Java Basics - Anfänger-Themen 17
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben