webForumDet fria alternativet

JLabel - "Not a statement" vid kompilering

Javaur Java

8 svar · 716 visningar · startad av Mattias

Medlem sedan mars 2000205 inlägg
Frågan#1

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å?

Medlem sedan mars 20007 896 inlägg
#2

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 );
Medlem sedan aug. 20021 752 inlägg
#3

Ä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

Medlem sedan mars 20007 896 inlägg
#4

Du är alltid en minut efter, Viktor. §e ;)

Medlem sedan aug. 20021 752 inlägg
#5

Det är lättare när du ligger i skogen och leker krig, då är jag alltid före dig ;)

/Viktor

Medlem sedan mars 2000205 inlägg
#6

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!

Medlem sedan feb. 20012 412 inlägg
#7

Hej!

Tråden flyttas till Java-forumet under OS & Program.

Vänligen Jörgen HP
Moderator

Medlem sedan feb. 20001 050 inlägg
#8

Det är möjligen inte så att det är ett litet L i boken? De brukar vara förvillande lika ettor...

Medlem sedan mars 2000205 inlägg
#9

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.

136 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)