Ich arbeite an einer Anwendung, die Boxen zeichnet und verbindet sie mit Linien. Jede Linie hat Ecken (Punkte). Der Benutzer kann Punkte hinzufügen, indem er mit der rechten Maustaste auf die Linie klickt. Dann erhält der Punkt einen Standort.Paint Operation wird nicht ausgeführt, aber das System funktioniert nicht
Die Malmethode des Diagramms durchläuft alle Punkte und prüft, ob sie benutzerdefiniert sind (einfach; return (location! = -1)), wenn sie da sind, muss ein Kreisbild an dieser Stelle gezeichnet werden.
Jetzt reiße ich wirklich mein Gehör auf, weil es im Debug-Modus ausgeführt wird, aber nicht zeichnen! Ich habe ein System zur Überprüfung platziert und das wird normal ausgeführt. Aber die if-Anweisung funktioniert, wenn ich ein! Zeichen vor der if-Anweisung. Ich kann das Problem wirklich nicht finden.
Die Farbe Methode:
public void paint(Graphics2D g) {
g.setColor(Color.RED);//_lineColor);
g.setStroke(new BasicStroke(DEFAULT_LINE_SIZE));
for(Line2D line : _lines) {
g.draw(line);
}
if(_isHover) {
for(ConnectionDot dot : _connectionDots) {
if(dot.isUserDot()) {
System.out.println("YEAH!!!");
//TODO: dot hover?
g.drawImage(_icoConnectionNor.getImage(), dot.getX()-8, dot.getY()-8, null);
//g.drawString("What?", dot.getX(), dot.getY());
} else {
System.out.println("Hell No!");
g.drawString("What?", dot.getX(), dot.getY());
}
}
}
}
Die Dot-Klasse:
public class ConnectionDot {
//...
private int _userDotQueueLoc;
/**
* Create new dot.
*
* @param gridController reference to the grid controller.
* @param grid Grid position of the dot.
*/
public ConnectionDot(GridController gridController, Grid grid){
_gridController = gridController;
_gridPos = grid;
_userDotQueueLoc = -1;
}
/**
* Create new user dot.
*
* @param gridController reference to the grid controller.
* @param grid Grid position of the dot.
* @param userDotLocation Location of user dot.
*/
public ConnectionDot(GridController gridController, Grid grid, int userDotLocation){
this(gridController, grid);
_userDotQueueLoc = userDotLocation;
}
/**
* Returns true if the dot is custom.
*
* @return Flag.
*/
public boolean isUserDot(){
return (_userDotQueueLoc != -1);
}
}
Console Ausgabe: Hell No! Hölle Nein! Hölle Nein! Hölle Nein! JA !!! Hölle Nein! Hölle Nein! Hölle Nein! Hölle Nein! JA !!! ... Sie erhalten den Punkt
Für bessere Hilfe, früher, ein SSCCE (http://pscode.org/sscce.html). –
Es muss nicht gedehnt werden, wo du denkst, dass es ist. Wie Andrew sagte, müssen Sie einen SSCCE veröffentlichen. – jzd
Ok .. habe gerade den Link angeschaut und weiß wirklich nicht, was ich damit machen soll. (Mucho lesen: P) Aber ich habe das Problem gefunden. –