Hallo....
habe ein Problem und zwar hatte ich mal wieder zu viel Zeit und bin auf die Idee gekommen einen Ansatz eines Spiels zu programmieren.
Einfach eine Figur die schiessen kann (mehr nicht eigentlich sinnlos)
Also mein erster Gedankengang war es das die Figur einfach mit JLabels schiessen wird
und so kahm mir die Frage ob es überhaupt möglich ist ein JLabel mit dem gleichen Namen mehrfach zu erzeugen das geht schonmal nur ist dann ein Problem entstanden worum es eben auch geht-.- :
Wenn ein Label seine Aufgabe erfüllt hat (z.B. eine Kolission mit einer Wand) könnte man es einfach .setVisible(false) machen oder disablen würd auch gehn aber nach einer Zeit würde das sicher arbeitsspeicher fressen ohne ende darum hab ich gegoogelt und bin auf unzählige remove() Methoden gestossen die jedoch nicht wirklich funktionieren wie ich das will
Hier ein kleiner Code dazu:
beim Klick auf einen Button soll einfach das Panel gelöscht werden zum testen
es scheint irgendwie auch zu funktionieren aber es sieht auch als würde nur einer der buttons auf hide() gesetzt werden und die anderen Dinge sind noch normal haben aber keine funktion mehr.
habe ein Problem und zwar hatte ich mal wieder zu viel Zeit und bin auf die Idee gekommen einen Ansatz eines Spiels zu programmieren.
Einfach eine Figur die schiessen kann (mehr nicht eigentlich sinnlos)
Also mein erster Gedankengang war es das die Figur einfach mit JLabels schiessen wird
Wenn ein Label seine Aufgabe erfüllt hat (z.B. eine Kolission mit einer Wand) könnte man es einfach .setVisible(false) machen oder disablen würd auch gehn aber nach einer Zeit würde das sicher arbeitsspeicher fressen ohne ende darum hab ich gegoogelt und bin auf unzählige remove() Methoden gestossen die jedoch nicht wirklich funktionieren wie ich das will
Hier ein kleiner Code dazu:
beim Klick auf einen Button soll einfach das Panel gelöscht werden zum testen
Java:
package mehrfachVerwendung;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class mehrfach_V1 {
static JPanel pan = new JPanel();
static Container cont;
public static void main(String[] args)
{
// TODO Auto- generated method stub
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(40,40,800,600);
cont = window.getContentPane();
cont.setLayout(null);
pan.setBounds(40, 40, 500, 150);
pan.setBackground(Color.red);
cont.add(pan);
window.setVisible(true);
// paar buttons erstellen (kein Sinn atm)
int anzahl = 5;
for(int i = 0; i < anzahl;i++)
{
mehrfachLabel();
}
}
public static void mehrfachLabel()
{
final JButton kaue = new JButton("X");
kaue.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
// TODO Auto-generated method stub
cont.remove(pan);
System.out.println("TEST TEST");
}
});
pan.add(kaue);
}
}
es scheint irgendwie auch zu funktionieren aber es sieht auch als würde nur einer der buttons auf hide() gesetzt werden und die anderen Dinge sind noch normal haben aber keine funktion mehr.