Hjälp! Vad har jag gjort fel? (Java)
Tjena
Läser Prog. på distans undrar om ni kan hjälpa mig lite på vägen, måste bli klar imorgon
Vi hade ett Kortspel i boken "Tjugoett". Går ut på att få 21 helt enkelt. Vi ska då göra ett
Graphical user interface för det här programmet. Försökt lite men får(se nedan) när jag kör programmet.
Vad har jag missat/behöver för att få det funka? Har inte med gränssnittet interface för jag har inte riktigt fattat det kanske måste iof? (Är jag helt ute och cyklar ?)
P.s. Försökt ändra Alignment men får bara error ändå
/Mvh Knewit
Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment
at javax.swing.JLabel.checkHorizontalKey(JLabel.java:588)
at javax.swing.JLabel.setHorizontalAlignment(JLabel.java:746)
at javax.swing.JLabel.<init>(JLabel.java:144)
at javax.swing.JLabel.<init>(JLabel.java:164)
at Tjugoett.<init>(Tjugoett.java:29)
at Tjugoett.SkapaOK÷r(Tjugoett.java:86)
at Tjugoett.main(Tjugoett.java:92)
Det här är originalet(Finns flera klasser, Antar bara denna behöver ändras pga de andra är abstracta klasser):
import static javax.swing.JOptionPane.*;
public class Tjugoett {
public static void main(String[] arg) {
Kortbunt lek = new Kortbunt();
Manniska du = new Manniska(lek);
Dator jag = new Dator(lek, du);
while (true) {
lek.nyKortlek();
lek.blanda();
du.spela();
String s = "";
if (du.poäng() > 21)
s = "Du förlorade!";
else if (du.poäng() == 21)
s = "Du vann!";
else {
jag.spela();
if (jag.poäng() <= 21 && jag.poäng() >= du.poäng())
s = "Du förlorade!";
else
s = "Du vann!";
}
int svar = showConfirmDialog(null, s + "\nNytt Parti? ");
if (svar != 0)
break;
}
}
}
Det jag skrivit:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class Tjugoett extends JPanel implements ActionListener {
private static Kortbunt lek = new Kortbunt();
private static Manniska du = new Manniska(lek);
private static Dator jag = new Dator(lek, du);
private JPanel Knappar = new JPanel();
protected JButton Nyttspel = new JButton("Nytt spel");
protected JButton Stanna = new JButton("Stanna");
protected JButton Nyttkort = new JButton("Kort");
public Tjugoett() {
super.setLayout(new GridLayout(2,1));
setBackground(Color.green);
setPreferredSize(new Dimension(640,480));
JPanel kort = new JPanel();
kort.setLayout(new GridLayout (6,1));
JLabel duKort, jagKort, Dinpoäng, Datorpoäng, förlora, vann;
duKort = new JLabel("Test");
jagKort = new JLabel("Test");
Dinpoäng = new JLabel("Du har " + du.poäng() + "poäng");
Datorpoäng = new JLabel("Datorn har "+ jag.poäng() + "poäng");
förlora = new JLabel("Du förlora!", JLabel.TOP);
vann = new JLabel("Du vann!", JLabel.TOP);
EtchedBorder e = new EtchedBorder();
duKort.setBorder(e);
jagKort.setBorder(e);
if (du.poäng() > 21)
kort.add(förlora);
else if (du.poäng() == 21)
kort.add(vann);
else {
if (jag.poäng() <= 21 && jag.poäng() >= du.poäng())
kort.add(förlora);
else
kort.add(vann);
}
kort.setBackground(Color.white);
kort.setSize(50,75);
kort.setVisible(true);
kort.setOpaque(true);
Knappar.setLayout(new BorderLayout ());
Knappar.add(Nyttspel, BorderLayout.SOUTH);
Knappar.add(Stanna, BorderLayout.SOUTH);
Knappar.add(Nyttkort, BorderLayout.SOUTH);
Knappar.setVisible(true);
add(kort);
add(Knappar);
kort.add(duKort);
kort.add(jagKort);
kort.add(Dinpoäng);
kort.add(Datorpoäng);
Nyttspel.addActionListener(this);
Stanna.addActionListener(this);
Nyttkort.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == Nyttspel) {
lek.nyKortlek();
lek.blanda();
du.spela();
}
if (e.getSource() == Nyttkort)
du.nyttKort();
if (e.getSource() == Stanna)
jag.spela();
}
private static void SkapaOKör() {
JFrame frame = new JFrame("Tjugoett");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Tjugoett());
frame.pack();
frame.setVisible(true);
}
public static void main(String[] arg) {
SkapaOKör();
}
}