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:
und hier die Klasse DrawPanel
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
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