Zmiana stanu Label

0

Witam

Mam mały problem. Tworze w swojej grze Opcje. Chcę aby po kliknięciu na przycisk PL, Label został "odświeżony" i wyświetlał "Jezyk: Polski", jesli klikenimy ENG to analogia do tego z tym ze jezyk angielski.
Uzywam zmiennej current, która przy wciśnięciu przycisku określa mi jaki stan został przyjęty, jednak po wciśnięciu przycisków System.out drukuje: null a Label przyjmuje postać ENG.
Dodam, że kod jest oparty o biblioteki Slick, ale to nie powinno mieć znaczenia w zrozumieniu kodu.

package TLT;
import java.awt.Dimension;
import java.awt.Toolkit;
import org.lwjgl.input.Mouse;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;
import de.matthiasmann.twl.Button;
import de.matthiasmann.twl.Label;
public class Options extends BasicTWLGameState {
	
	Image abstrct;
	private GameContainer gc;
	private Button btnBack, btnLngENG, btnLngPL;
	private String languagePL;
	private String languageENG;
	private StateBasedGame sbg;
	public String current = languageENG;

	public Options(int state) {
	}

	public void init(GameContainer gc, StateBasedGame sbg)
			throws SlickException {
		this.gc = gc;
		this.sbg = sbg;
		abstrct = new Image("res/GFX/Interface/menuElements/abstract.png");
		
		
		if (current == languageENG) {
			current = "Language: English";
		} 
		if (current == languagePL) {
			current = "Jezyk: Polski";
		}
		
	}

	public void render(GameContainer gc, StateBasedGame sbg, Graphics g)
			throws SlickException {
		// draw images
		int w = gc.getWidth();
		int h = gc.getHeight();

		g.drawRect(0, 0, (w), (h));
		g.fillRect(0, 0, (w), (h));

		abstrct.draw(0, h / 2);

	}

	@Override
	protected RootPane createRootPane() {
		final RootPane rp = super.createRootPane();
		int w = gc.getWidth();
		int h = gc.getHeight();
		rp.setTheme("options");
		
		final Label lngLbl = new Label(current);
		lngLbl.setSize(150, 60);
		lngLbl.setPosition(w / 3- 350, h / 4 + 93);

		btnBack = new Button("BACK TO MENU");
		btnBack.addCallback(new Runnable() {
			public void run() {
				sbg.enterState(5);
			}
		});
		rp.add(btnBack);
		
		btnLngENG = new Button("ENG");
		btnLngENG.addCallback(new Runnable() {
			public void run() {
				current = languageENG;
				System.out.println(current);
				rp.removeChild(lngLbl);
				rp.add(lngLbl);
			}
		});
		rp.add(btnLngENG);
		
		btnLngPL = new Button("PL");
		btnLngPL.addCallback(new Runnable() {
			public void run() {
				current = languagePL;
				System.out.println(current);
				rp.removeChild(lngLbl);
				rp.add(lngLbl);
			}
		});
		rp.add(btnLngPL);
		
		return rp;
	}
	@Override
	protected void layoutRootPane() {
		int w = gc.getWidth();
		int h = gc.getHeight();
		
		btnLngENG.setSize(60, 60);
		btnLngENG.setPosition(w / 3- 200, h / 4 + 58);
		
		btnLngPL.setSize(60, 60);
		btnLngPL.setPosition(w / 3 - 200, h / 4 + 128);
		
		btnBack.setSize(200, 60);
		btnBack.setPosition(w / 2 - 100, h / 2 + 298);
			}

	public void update(GameContainer gc, StateBasedGame sbg, int delta)
			throws SlickException {
	}
	public int getID() {
		return 4;
	}
}
1
 if (current == languageENG) {
                        current = "Language: English";
                } 
                if (current == languagePL) {
                        current = "Jezyk: Polski";
                }

equals zamiast ==

0

A no racja:D bo current jest typu String. Wielkie dzieki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1