ImageViewer mit kleinen Problemchen

Status
Nicht offen für weitere Antworten.

Sven_1988

Mitglied
hallo liebe Community ich habe wieder mal ein kleines Problem bei meinen Java Versuchen, heute habe ich einen ImageViewer selbst erstellt, welcher erfolgreich eine ppm datei zeichnet. Jedoch bekomme ich beim ausführen einige IllegalArgumentExceptions was mir nicht so gefällt. Kann mir jemand helfen wie ich das handeln kann:



Java:
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.StreamTokenizer;
import java.util.ArrayList;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * @author Sven Amend
 */
public class PPMlader extends JPanel{
    ArrayList<Integer> RGBArrayList = new ArrayList<Integer>();

    public void ppmDateiEinlesen(String filename) {
        StreamTokenizer sTokenizer = null;
        try {
            
            sTokenizer = new StreamTokenizer(new FileReader(filename));

            while (sTokenizer.nextToken() != StreamTokenizer.TT_EOF ) {

                if (sTokenizer.ttype == StreamTokenizer.TT_NUMBER  ){

                    RGBArrayList.add((int) sTokenizer.nval);

                }//end if
            }//end while

        //Da die ersten fünf Zahlen in der ppm datei nix mit den RGBS zu tun ha
        //werden diese aus der ArrayList gelöscht    
        for( int i=0; i<= 4;i++){

            RGBArrayList.remove(0);

        }//end for

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }//end catch

        catch (IOException ex) {
            ex.printStackTrace();
        }//end catch

    }//end ppmdateiEinlesen


     public PPMlader() {
        fensterErzeugen();
    }//end Konstruktor

    public void fensterErzeugen() {
        JFrame frame = new JFrame("ImageViewer by Sven Amend");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setAlwaysOnTop(true);
        frame.setLocationByPlatform(true);
        frame.setSize(200, 297);
        frame.getContentPane().add(this);
        frame.setVisible(true);
        
    }//end fensterErzeugen

   @Override
    protected void paintComponent(Graphics g) throws IllegalArgumentException{

        super.paintComponent(g);
        ppmDateiEinlesen("mystery-load.ppm");
        int x = 0;
        int y = 0;

        for (int i = 0; i < RGBArrayList.size()-1; i = i + 3) {

            if (x == 200) {
                x = 0;
                y++;
            }//end if

            int rotWert = RGBArrayList.get(i);
            int gruenWert = RGBArrayList.get(i + 1);
            int blauWert = RGBArrayList.get(i + 2);
           
            g.setColor(new Color(rotWert, gruenWert, blauWert));
            g.fillRect(x, y, 1, 1);
            x++;
            repaint();

        }//end for
   }//end paintComponent

    public static void main(String[] args) {

        new PPMlader();

    }//end main
}//end class
 

javimka

Top Contributor
Gibt es zur IllegalArgumentExceptions auch eine StackTrace? Dann wüssten wir, wo genau die Exception geworfen wird. So ist es ein bisschen schwierig.
 

Sven_1988

Mitglied
Folgende meldungen werden 28 mal ausgegebn
Java:
run:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Green
        at java.awt.Color.testColorValueRange(Color.java:298)
        at java.awt.Color.<init>(Color.java:382)
        at java.awt.Color.<init>(Color.java:357)
        at PPMlader.paintComponent(PPMlader.java:86)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:864)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1780)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Blue
        at java.awt.Color.testColorValueRange(Color.java:298)
        at java.awt.Color.<init>(Color.java:382)
        at java.awt.Color.<init>(Color.java:357)
        at PPMlader.paintComponent(PPMlader.java:86)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Green
        at java.awt.Color.testColorValueRange(Color.java:298)
        at java.awt.Color.<init>(Color.java:382)
        at java.awt.Color.<init>(Color.java:357)
        at PPMlader.paintComponent(PPMlader.java:86)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Red
        at java.awt.Color.testColorValueRange(Color.java:298)
        at java.awt.Color.<init>(Color.java:382)
        at java.awt.Color.<init>(Color.java:357)
        at PPMlader.paintComponent(PPMlader.java:86)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
        at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1220)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:803)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:694)
 

musiKk

Top Contributor
Nun, die Farbwerte dürfen nur im Intervall 0-255 liegen. Offenbar ist das hier nicht der Fall.
 

Sven_1988

Mitglied
Bin jetzt gerade dabei eine Methode zu implemntieren die den Kontrast des Bildes verändert indem ich die Farbwerte im Array neu anlegen lassen und anschliesend zeichnen lassen möchte, vielleciht könnt ihr mir ja weiter helfen:
Java:
//xmin und ymin geben den Bezugspunkt eines Auswahlrechteck an über die Breite und höhe
//soll das Auswahlrechteck gegrenzt werden

public void kotrastAendern(int xmin, int ymin, int breite, int hoehe, double kontrastfaktor){

       //int koordinate = 0;
       //int zielkoordiante=0;


       for(int i=0; i<RGBArrayList.size();i++){
           
           RGBArrayList.set(i, (RGBArrayList.get(i)*(int)kontrastfaktor));

       }//end for

      // RGBArrayList.set(xmin, (int)kontrastfaktor);
       //RGBArrayList.set(ymin, (int)kontrastfaktor);


   }//end kontrastAendern

[code=Java]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
A Datenstruktur für Savings Algorithmus und Planung von kleinen Programmierprojekten Java Basics - Anfänger-Themen 1
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
M Ausgabe einer kleinen Aufgabe Java Basics - Anfänger-Themen 2
M Suche Hilfe bei sehr kleinen Quelltexten Java Basics - Anfänger-Themen 2
T Erste Schritte Fragen zu meinen kleinen Programm Java Basics - Anfänger-Themen 9
S bräuchte hilfe bei einem kleinen prog Java Basics - Anfänger-Themen 3
T Frage zu einem kleinen programm mit array's Java Basics - Anfänger-Themen 8
G Brauche nen kleinen Denkanstoss Java Basics - Anfänger-Themen 7
R problem: wiederholschleife eines kleinen spieles Java Basics - Anfänger-Themen 3
I Kleinen Gedankenanstoß bitte! Java Basics - Anfänger-Themen 15
D Wer hilft mir mit einer kleinen GUI Java Basics - Anfänger-Themen 12
B Starten einer kleinen Applikation Java Basics - Anfänger-Themen 5
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
B Problemchen mit Bild Java Basics - Anfänger-Themen 10
P Problemchen mit Array Java Basics - Anfänger-Themen 14
X Problemchen C++ vs. Java Java Basics - Anfänger-Themen 19
T JDBC Problemchen Java Basics - Anfänger-Themen 2
N Kleines Problemchen mit ButtonGroup Java Basics - Anfänger-Themen 2
S GridBagLayout: Problemchen Java Basics - Anfänger-Themen 2
E JCheckBox-problemchen Java Basics - Anfänger-Themen 2
C Problemchen mit Exception(s) Java Basics - Anfänger-Themen 22
J anfänger problemchen. Java Basics - Anfänger-Themen 26
I kleines problemchen bei DecimalFormat Java Basics - Anfänger-Themen 6

Ähnliche Java Themen


Oben