JLabel 1 new JLabel("Haj", JLabel.CENTER);
Två fel här. Du försöker ha en siffra som variabelnamn och du har inget tilldelningstecken ( = ).
För att lösa det:
JLabel label = new JLabel( "Haj", JLabel.CENTER );
8 svar · 716 visningar · startad av Mattias
Har nyss satt igång med att lära mig grunderna i Java och använder boken "Java direkt med Swing" av Jan Skansholm. Där finns en exempelkod som öppnar ett fönster med en text i, men trots att jag (vad jag kan se) följer angiven kod så får jag en massa fel vid kompilering. Detta är koden:
import java.awt.*;
import javax.swing.*;
public class Halsning {
public static void main (String[] arg) {
Direkt2 d2 = new Direkt2();
}
}
class Direkt2 extends JFrame {
public Direkt2() {
JLabel 1 new JLabel("Haj", JLabel.CENTER);
getContentPane().add(1);
1.setOpaque(true);
1.setBackground(Color.yellow);
1.setForeground(Color.blue);
1.setFont(new Font("SansSerif", Font.BOLD, 24));
setSize(400,150);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE); }
}
Felen verkar vara relaterade till JLabel och ser ut som följer:
C:\jtest\Halsning.java:19: not a statement
JLabel 1 new JLabel("Haj", JLabel.CENTER);
^
C:\jtest\Halsning.java:19: ';' expected
JLabel 1 new JLabel("Haj", JLabel.CENTER);
^
C:\jtest\Halsning.java:22: not a statement
1.setOpaque(true);
^
C:\jtest\Halsning.java:22: ';' expected
1.setOpaque(true);
^
C:\jtest\Halsning.java:23: not a statement
1.setBackground(Color.yellow);
^
C:\jtest\Halsning.java:23: ';' expected
1.setBackground(Color.yellow);
^
C:\jtest\Halsning.java:24: not a statement
1.setForeground(Color.blue);
^
C:\jtest\Halsning.java:24: ';' expected
1.setForeground(Color.blue);
^
C:\jtest\Halsning.java:25: not a statement
1.setFont(new Font("SansSerif", Font.BOLD, 24));
^
C:\jtest\Halsning.java:25: ';' expected
1.setFont(new Font("SansSerif", Font.BOLD, 24));
^
C:\jtest\Halsning.java:21: cannot resolve symbol
symbol : method add (int)
location: class java.awt.Container
getContentPane().add(1);
^
11 errors
Jag skickade nyss koden till en kompis som också får kompileringsfil. Därför undrar jag vad dessa fel kan bero på?
JLabel 1 new JLabel("Haj", JLabel.CENTER);
Två fel här. Du försöker ha en siffra som variabelnamn och du har inget tilldelningstecken ( = ).
För att lösa det:
JLabel label = new JLabel( "Haj", JLabel.CENTER );
Ändra detta
JLabel 1 new JLabel("Haj", JLabel.CENTER);
till
JLabel one = new JLabel("Haj", JLabel.CENTER);
så ska det nog fungera. Du ska/kan inte ha siffror som variabel namn och du måste tilldela variabeln "new JLabel("Haj", JLabel.CENTER);" det är därför du måste ha "=" också.
/Viktor
Du är alltid en minut efter, Viktor. §e ;)
Ok, nu gick det bra att kompilera. Likhetstecknet hade jag glömt att sätta ut av rent slarv, men det intressanta är ett det inte går att använda siffror som variabler, vilket alltså Skansholm gör i bokens exempel. Konstigt att detta fel inte står angivet under "rättelser" på bokens hemsida.
Hur som helst... Tack för hjälpen, SPiN och Viktor!
Det är möjligen inte så att det är ett litet L i boken? De brukar vara förvillande lika ettor...
Hmm... Jo, nu när du säger det. Det stämmer att det är ett litet L. Lite slarvigt av mig att inte tänka på det, men som du säger så är L:et väldigt lik en etta.