Swing Buffered Image anzeigen

Bitte aktiviere JavaScript!
Hallo Forum,
Ich versuche gerade mit Swing ein Buffered Image zu erzeugen und es in einem JFrame anzuzeigen, aus dem Internet bin ich leider auch nicht schlau geworden.
Java:
BufferedImage br = new BufferedImage(500, 300, BufferedImage.TYPE_INT_RGB );
Damit habe ich ein Buffered Image erzeugt, aber wie kann ich das Anzeigen?

Danke
 
Zum Beispiel, indem Du daraus ein ImageIcon erzeugst und dieses durch ein JLabel anzeigen lässt.
Java:
JLabel imageLabel = new JLabel(new ImageIcon(br));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.add(imageLabel);
frame.pack();
frame.setVisible(true);
 
Wir hatten in der Schule in Informatik die Aufgabe ein 16*12 Bild in schwarz weiß zu Codieren und es jemanden zeichnen zu lassen, das will ich mal zum Spaß in Java machen.
 
Wie kann man unter Windows eigentlich eine Binärdatei erstellen, in die man auch nur 0 und 1 reinschreiben kann. Wenn ich bei einer txt Datei die Endung z.b. auf ghj ändere kann ich ja trotzdem Buchstaben reinschreiben, ich möchte aber nur 0en und 1en speichern geht das irgendwie?
 
Wie kann man unter Windows eigentlich eine Binärdatei erstellen, in die man auch nur 0 und 1 reinschreiben kann. Wenn ich bei einer txt Datei die Endung z.b. auf ghj ändere kann ich ja trotzdem Buchstaben reinschreiben, ich möchte aber nur 0en und 1en speichern geht das irgendwie?
Hä?!? Eine Textdatei ist eine Binärdatei, deren Inhalt einfach nur vom jeweiligen Programm (Texteditor) als Text unter Zuhilfenahme eines Zeichensatzes interpretiert wird. Ein A wird in nahezu allen Zeichensätzen als 65 kodiert und dem entsprechend gespeichert (binär 01000001).

Was willst Du denn machen?

Wenn Du binäre Daten bearbeiten willst, kannst Du Dir einen Hex-Editor besorgen. Wenn Du hart drauf bist, geht das auch in der Eingabeaufforderung mit "debug".

Wenn Du in einem Java-Programm binäre Daten schreiben und lesen willst, kannst Du das per OutputStream bzw. InputStream oder RandomAccessFile machen.
 
Wobei die Frage nicht so blöd ist. Ich kenne ich Java kein BitArray. Bei .Net gibt es ein BitArray welchem man ein ByteArray geben konnte um dann auf einzelne Bits zuzugreifen.

Aber nur weil es das im Java Framework nicht zu geben scheint, kann man sich dies ja selbst jederzeit bauen. das nte Bit kann man ja schnell ermitteln:
n/8 -> welches Byte muss ich betrachten?
n%8 -> welches Bit in dem Byte muss ich betrachten. Wobei beide Zahlen mit 0 beginnen und das n%8 kann als Anzahl der Notwendigen Shift Operationen genommen werden. Das erste Bit aus dem Byte extrahiert man dann mit dem logischen & also Byte & 1 ergibt entweder 0 oder 1 - je nachdem ob das Bit gesetzt ist oder nicht.

Somit kann ein BitArray relativ einfach selbst geschrieben werden. Und da sind dann natürlich auch relativ einfach so Dinge wie Iterator, foreach und co implementierbar.

Lesen/Schreiben geht dann - wie schon angesprochen - sehr einfach, da ja ein Array von Bytes gelesen oder geschrieben wird was ja die eigentliche Basis für alle Streams/Reader/Writer ist.
 
Ahh ... hab ich übersehen. Danke für den Hinweis. Hatte kurz gesucht und nichts gefunden (Aber habe halt nach Array und nicht nach Set gesucht).

Jetzt mehr unter dem Gesichtspunkt: Was, wenn ich so eine Klasse schreiben müsste:
Set ist irreführend, denn ein Set liegt ja nicht vor. Ein Set ist ja eine Sammlung von Objekten, deren Reihenfolge nicht festgelegt ist.
Aber bei den Bits ist die Reihenfolge ja sehr wohl wichtig und Methoden wie get(index) zeigen dies ja eigentlich auch.
 
Jetzt mehr unter dem Gesichtspunkt: Was, wenn ich so eine Klasse schreiben müsste:
Set ist irreführend, denn ein Set liegt ja nicht vor. Ein Set ist ja eine Sammlung von Objekten, deren Reihenfolge nicht festgelegt ist.
Aber bei den Bits ist die Reihenfolge ja sehr wohl wichtig und Methoden wie get(index) zeigen dies ja eigentlich auch.
Ist ein Set nicht eher einfach nur eine Menge? Also keine Duplikate, ob geordnet oder nicht ist egal.

Die Intention hinter BitSet kann ich durchaus verstehen, es ist einfach eine Menge von Bits (wobei jedes Bit einen Index hat).
Jedes Bit kann nur einmal vorkommen (zweimal „Bit 17“ geht nicht).
Reihenfolge hat es nur implizit, ebenso wie ein Set<Integer> auch eine Reihenfolge hat, iterieren in dieser Reihenfolge lässt sich aber nicht.
 
Ich möchte für das Programm zum testen ein kleines schwarz weiß Bild binär selbst codieren. Und das dann mit java decodieren und anzeigen, allerdings scheitert es daran, eine binäre Datei anzulegen und sie in java auszulesen und dabei auch nur binäre Zahlen zu erhalten.
 
Set ist irreführend, denn ein Set liegt ja nicht vor. Ein Set ist ja eine Sammlung von Objekten, deren Reihenfolge nicht festgelegt ist.
Aber bei den Bits ist die Reihenfolge ja sehr wohl wichtig und Methoden wie get(index) zeigen dies ja eigentlich auch.
Ich halte set an dieser Stelle auch für ungünstig, da man geneigt ist das mit Menge zu übersetzen. Das wäre aus semantischer Sicht, wie Du es ja mit Deiner Argumentation richtig formuliert hast, nicht korrekt. Eine Menge aus 0 und 1 kann maximal 2 Elemente besitzen.
set kann aber auch mit dem Wort Zusammenstellung übersetzt werden. Es ist also eine Zusammenstellung von 0 und 1.
 
Ich möchte für das Programm zum testen ein kleines schwarz weiß Bild binär selbst codieren
Ich frage mich gerade, wieso das allgemein irgendwer überhaupt jemals möchte :D

(Soll aber nicht heißen ich hätte keine Ahnung... habe für einen Komprimierungsalgorithmus schonmal einen Preis gewonnen)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben