Informationen von Pixeln

kibi_kibi

Neues Mitglied
Hallo,
also zuerst sorry für mein deutsch XD. Und jetzt das Problem. Ich habe ein Programm geschrieben mit GUI. Und habe da eine Klasse DrawPanel. Diese Klasse wird durch Dimension definiert wo ich eigentlich Objekte zeichnen kann. und wo liegt das Problem ? Ich brauche jetzt von diesen Fenster Informationen über Pixelfarbe bekommen... Ich weiß nicht wie ;( Ich soll jede Zeile scanen und die Infos irgendwie bekommen... ich habe diese Klasse in anderer erzeugt:
Java:
                DrawPanel drawPanel = new DrawPanel(); 
                drawPanel.setBackground(Color.white); 
                drawPanel.setPreferredSize(new Dimension(getPreferredSize().width - 20, getPreferredSize().height - 170)); 
                add(drawPanel, BorderLayout.CENTER);



und hier die Klasse DrawPanel
Java:
import java.awt.Graphics; 
import java.awt.Image; 
import java.awt.Point; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
import java.awt.event.MouseMotionListener; 
import java.awt.*; 

import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 
import java.lang.Object.*; 
import java.awt.Color; 

import funktionen.*; 

public class DrawPanel extends JPanel implements MouseListener, MouseMotionListener{ 

        FigurListe figurListe; 
        Draw draw; 
        private boolean drawMade; 
        private boolean pressed; 
        private int x , y ; 

        public DrawPanel() { 
                figurListe = new FigurListe(); 
                drawMade = false; 
                pressed = false; 
                x = 0; 
                y = 0; 
                this.addMouseMotionListener(this); 
                this.addMouseListener(this); 
        } 
        
        public void insertCode(String s){ 
                figurListe.addCode(s); 
                this.repaint(); 
        } 
        
        public void createDraw(){ 
                draw = new Draw(figurListe.liste, figurListe.punkAnz, figurListe.verbindungen, figurListe.verbAnz); 
                drawMade = true; 
                this.repaint(); 
        } 
        


// =============================================================== 
        //colorscan 
        
        public void scan(){ 
        } 
        
//=================================================================== 

        protected void paintComponent(Graphics g) { 
                
                super.paintComponent(g); 
                if (drawMade == true) draw.drawImage(g); 
        } 
        
        public void mouseMoved(MouseEvent e) {} 
        public void mouseClicked(MouseEvent e) { 
        } 
        public void mouseEntered(MouseEvent arg0) {} 
        public void mouseExited(MouseEvent arg0) {} 
        public void mouseReleased(MouseEvent arg0) {} 

        public void mousePressed(MouseEvent e) { 
                x = e.getX(); 
                y = e.getY();    
        } 

        public void mouseDragged(MouseEvent e) { 
                scan(); 
                String wayX = mouseWayX(e.getX(), e.getY()); 
                String wayY = mouseWayY(e.getX(), e.getY()); 
                if (SwingUtilities.isLeftMouseButton(e)) { 
                        if(wayX != "0" && drawMade) draw.change(wayX); 
                        if(wayY != "0" && drawMade) draw.change(wayY); 
                } 
                if (SwingUtilities.isRightMouseButton(e)){ 
                        if(wayY == "up" && drawMade) { 
                                draw.Zprp += 50; 
                                draw.Zvp += 50; 
                        } 
                        if(wayY == "down" && drawMade){ 
                                draw.Zprp -= 50; 
                                draw.Zvp -= 50; 
                        } 
                        draw.perspektive(); 
                } 
            repaint(); 
                
        } 
        
        private String mouseWayX(int x1, int y1){ 
                if (x1 > x) { 
                        x = x1; 
                        y = y1; 
                        return "right"; 
                } 
                else if (x1 < x) { 
                        x = x1; 
                        y = y1; 
                        return "left"; 
                } 
                else return "0"; 
        } 
        private String mouseWayY(int x1, int y1){ 
                if (y1 > y)  { 
                        x = x1; 
                        y = y1; 
                        return "down"; 
                } 
                else if (y1 < y) { 
                        x = x1; 
                        y = y1; 
                        return "up"; 
                } 
                else return "0"; 
        } 
}


Ich benutze alle graphische Veränderungen auf dieser Klasse. Ich dachte dass ich irgendwie so machen konnte: this.getGraphics()........... aber es gibt keine Funktionen da die irgendwas mit pixels zu tun haben...

Ich bitte dringend um Hilfe ;(

Johanna
 

Marco13

Top Contributor
Öhm - FALLS ich das jetzt richtig verstanden habe... suchst du vielleicht sowas wie
Code:
BufferedImage image = new BufferedImage(drawPanel.getWidth(), drawPanel.getHeight(), BufferedImage.TYPE_INT_RGB);
drawPanel.paint(image.getGraphics());

int rgb = image.getRGB(12,34);
Color color = new Color(rgb);
...?
 

kibi_kibi

Neues Mitglied
Hm also ohne Benutzung von BufferedImage geht das nicht ?? :( wenn nicht dann werde ich ganze Menge von Spaß haben bei Änderungen in mein Programm XD ok ich versuche es mit BuffImage
 

Ähnliche Java Themen

Neue Themen


Oben