Hallo zusammen,
habe auch mal ein KLEINES Problemchen mit meiner JList, die nämlich aus mir unerfindlichen Gründen die Label nicht in sich aufnimmt und anzeigt. So nebenbei sei dazu erwähnt, dass ich mehr oder weniger Laie bin und ihr euch deswegen über die hölzerne Art, in der ich zu programmieren pflege, bitte nicht wundern solltet.
Der Component ist Teil eines Spieles (offensichtlich) die Liste soll dazu dienen, aufzuzeichnen wer schlägt, und mit welcher Zahl(Würfeln) er zuschlägt. Ich möchte also mit dieser Liste sozusagen ein Logbuch des Kampfes erstellen. Komischerweise gewinne ich momentan immer (was ja eigentlich ganz witzig, aber nicht Sinn der Sache ist) und meine Liste bleibt leer.
Hier also mein Programm (ist Teil eines von mir leider noch nicht fertiggestellten Spiels):
Ich hoffe ihr könnt mir dabei helfen, das Problem zu lösen!
Liebe Grüße
Macki
habe auch mal ein KLEINES Problemchen mit meiner JList, die nämlich aus mir unerfindlichen Gründen die Label nicht in sich aufnimmt und anzeigt. So nebenbei sei dazu erwähnt, dass ich mehr oder weniger Laie bin und ihr euch deswegen über die hölzerne Art, in der ich zu programmieren pflege, bitte nicht wundern solltet.
Der Component ist Teil eines Spieles (offensichtlich) die Liste soll dazu dienen, aufzuzeichnen wer schlägt, und mit welcher Zahl(Würfeln) er zuschlägt. Ich möchte also mit dieser Liste sozusagen ein Logbuch des Kampfes erstellen. Komischerweise gewinne ich momentan immer (was ja eigentlich ganz witzig, aber nicht Sinn der Sache ist) und meine Liste bleibt leer.
Hier also mein Programm (ist Teil eines von mir leider noch nicht fertiggestellten Spiels):
Code:
public JComponent schlachtergebnis() {
sergebnis.removeAll();
sergebnis.repaint();
int anzahl=0;
JScrollPane sp;
JLabel monsterangriff;
JLabel monsterverteidigung;
JLabel heldenangriff;
JLabel heldenverteidigung;
JList aufzeichnung =new JList(); //ominöse Liste, die nicht will was ich will
int Schaden =0; //hier wird der Schaden abhängig von der Monsterstärke ermittelt
switch(monster.Staerke){
case 1:
case 2:
Schaden=1;
break;
case 3:
case 4:
Schaden=2;
break;
case 5:
case 6:
Schaden=3;
break;
case 7:
case 8:
Schaden=4;
break;
case 9:
case 10:
Schaden=5;
break;
}
int zuerst= (int)Math.ceil(Math.random()*2); //wer schlädt zuerst monster =1
boolean tt =false;
while (!tt){
if (zuerst<=1){
int mattacke = monster.Staerke*((int)Math.ceil(Math.random()*6));
monsterangriff= new JLabel("Der "+monster.Name+" attackiert mit "+mattacke);
aufzeichnung.add(monsterangriff); //hier soll das Label nun eingefügt werden
int hverteidigung =Held.Rustung*((int)Math.ceil(Math.random()*6));
heldenverteidigung= new JLabel ("Ihr verteidigt mit "+hverteidigung);
aufzeichnung.add(heldenverteidigung);// hier sollte dann das nächste eingefügt werden etc.
if (mattacke-hverteidigung>0){
Held.Lebenspunkte=Held.Lebenspunkte-Schaden;
}
if (Held.Lebenspunkte>0){
int hattacke = Held.Staerke*((int)Math.ceil(Math.random()*6));
heldenangriff = new JLabel("Ihr greift mit "+hattacke+ "an");
aufzeichnung.add(heldenangriff);
int mverteidigung= monster.Ruestung*((int)Math.ceil(Math.random()*6));
monsterverteidigung = new JLabel("Der "+monster.Name+" verteidigt mit "+mverteidigung);
aufzeichnung.add(monsterverteidigung);
if (hattacke>mverteidigung){
monster.Lebenspunkte=monster.Lebenspunkte-2;
}
}
else {
tt=true;
}
if (monster.Lebenspunkte>=0){
tt=true;
}
anzahl=anzahl++;
aufzeichnung.add(monsterangriff);
aufzeichnung.add(heldenverteidigung);
}
else{
int hattacke = Held.Staerke*((int)Math.ceil(Math.random()*6));
heldenangriff = new JLabel("Ihr greift mit "+hattacke+ "an");
aufzeichnung.add(heldenangriff);
int mverteidigung= monster.Ruestung*((int)Math.ceil(Math.random()*6));
monsterverteidigung = new JLabel("Der "+monster.Name+" verteidigt mit "+mverteidigung);
aufzeichnung.add(monsterverteidigung);
if (hattacke>mverteidigung){
monster.Lebenspunkte=monster.Lebenspunkte-2;
}
if (monster.Lebenspunkte>0) {
int mattacke = monster.Staerke*((int)Math.ceil(Math.random()*6));
monsterangriff= new JLabel("Der "+monster.Name+" attackiert mit "+mattacke);
aufzeichnung.add(monsterangriff);
int hverteidigung =Held.Rustung*((int)Math.ceil(Math.random()*6));
heldenverteidigung= new JLabel ("Ihr verteidigt mit "+hverteidigung);
aufzeichnung.add(heldenverteidigung);
if (mattacke-hverteidigung>0){
Held.Lebenspunkte=Held.Lebenspunkte-Schaden;
}
}
else {
tt=true;
}
aufzeichnung.add(heldenangriff);
aufzeichnung.add(monsterverteidigung);
}
anzahl=anzahl++;
}
if (Held.Lebenspunkte<=0){
JLabel pic1 = new JLabel(new ImageIcon("C:/Dokumente und Einstellungen/Cheffe/Eigene Dateien/Söldner Bilder/Umgebung/warhammer5.jpg"));
JLabel pa1 = new JLabel("Ihr habt versagt!");
JButton neusp = new JButton("neues Spiel");
neusp.addActionListener(this);
neusp.setActionCommand("weiter");
neusp.setBounds(450,550,150,30);
pa1.setBounds(250,0,1000,100);
pa1.setFont(f);
pa1.setForeground(hell);
sp= new JScrollPane(aufzeichnung);
sp.setBounds(0,50,1000,300);
pic1.setLayout(null);
pic1.setOpaque(false);
pic1.add(pa1);
pic1.add(sp);
pic1.add(neusp);
sergebnis.add(pic1);
}
else{
JLabel pic1 = new JLabel(new ImageIcon("C:/Dokumente und Einstellungen/Cheffe/Eigene Dateien/Söldner Bilder/Umgebung/Händler.jpg"));
JLabel pa1 = new JLabel("Ihr ward siegreich!");
JButton weiter = new JButton("weiter");
weiter.addActionListener(this);
weiter.setActionCommand("weiter");
weiter.setBounds(450,550,150,30);
pa1.setBounds(250,0,1000,100);
pa1.setFont(f);
pa1.setForeground(hell);
sp= new JScrollPane(aufzeichnung);
sp.setBounds(100,100,700,300);
pic1.setLayout(null);
pic1.setOpaque(false);
pic1.add(pa1);
pic1.add(sp);
pic1.add(weiter);
sergebnis.add(pic1);
}
return sergebnis;
}
Ich hoffe ihr könnt mir dabei helfen, das Problem zu lösen!
Liebe Grüße
Macki