Hallo!
In meinem Spiel werden beim Mausklick an der richtige Stelle JLabels erzeugt und gezeichnet... Wenn sie nun an die falsche Stelle geschoben werden, sollen sie wieder gelöscht werden! Ich fand es einleuchtend die null-referenz zuzuweisen da es ja im Prinzip nur Instanzen sind die gelöscht werden sollen! Allerdings werden die sichtbaren Labels nicht gelöscht (auch dann nicht wenn ich den GarbageCollector direkt danach ausführe)! Hier der entsprechende Code:
In meinem Spiel werden beim Mausklick an der richtige Stelle JLabels erzeugt und gezeichnet... Wenn sie nun an die falsche Stelle geschoben werden, sollen sie wieder gelöscht werden! Ich fand es einleuchtend die null-referenz zuzuweisen da es ja im Prinzip nur Instanzen sind die gelöscht werden sollen! Allerdings werden die sichtbaren Labels nicht gelöscht (auch dann nicht wenn ich den GarbageCollector direkt danach ausführe)! Hier der entsprechende Code:
Code:
private void guiMouseReleased (MouseEvent evt){
if( hitLabel != null ){
System.out.println ("Released: " + evt.getPoint());
if (contentPanel.getComponentAt (evt.getPoint()) instanceof GamePanel){
System.out.println ("On GamePanel");
hitLabel.setLocation (evt.getX() - labelX, evt.getY() - labelY);
hitLabel.repaint();
}else{
System.out.println ("Else-Zweig");
backupX = hitLabel.getX();
backupY = hitLabel.getY();
String currentLabel = hitLabel.getName();
if (currentLabel.equals ("s1copy")){
s1copy = null;
}else if (currentLabel.equals ("s2copy")){
s2copy = null;
}else if (currentLabel.equals ("s3copy")){
s3copy = null;
}else if (currentLabel.equals ("s4copy")){
s4copy = null;
}else if (currentLabel.equals ("s5copy")){
s5copy = null;
}
hitLabel = null;
this.repaint();
}
}
}