Hjälp! Vad har jag gjort fel? (Java)

Permalänk
Medlem

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(); } }

Permalänk
Medlem
Skrivet av KnewIt8:

Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment

...
at javax.swing.JLabel.<init>(JLabel.java:164)
at Tjugoett.<init>(Tjugoett.java:29)
...

... förlora = new JLabel("Du förlora!", JLabel.TOP); vann = new JLabel("Du vann!", JLabel.TOP); ...

JLabel(String, int) säger:

Citat:

horizontalAlignment - One of the following constants defined in SwingConstants: LEFT, CENTER, RIGHT, LEADING or TRAILING.

Du nämnde att du provat ändra alignment. Har du provat en av de giltiga värdena?

Visa signatur

Vill du ha svar? Citera mig gärna.

Permalänk
Medlem

Haha, tack! Det var det. Trodde jag hade testat att ändra det förut men då hade jag säkert skrivit fel på en annan. Visste jag hade gjort nåt klant fel

Nu måste jag bara fixa resten

/Mvh Knewit