2015-05-23 4 views
0

Я импортировал изображение в апплет и попытался сделать его, если мышь нажата на кнопку, тогда он вернет «startButtonClicked», чтобы быть правдой, и страница изменится. Моя проблема заключается в том, что как только я запустил апплет, он сразу же перевернется на страницу 2, как будто это правда. Если я сниму строку кода, которая изменит страницу, если она истинна, тогда она вернется к норме. Я тестировал, если у меня есть размеры и координаты, рисуя овал и видя, где он будет рисовать, и он отлично нарисован на кнопке! Я не вижу, что я делаю неправильно. (Все реализуется справа)Кнопка нажимается справа, когда она начинается?

Вот некоторые из кода, который включает в себя это:

int roomPage = 0; 
int xPos; 
int yPos; 
boolean startButtonClicked = false; 
boolean instructionsButtonClicked = false; 
int startButtonX = 700; 
int startButtonY = 200; 

код, который включает в себя это:

public void init() { 
    setSize(1024,640); 
    addKeyListener(this); 
    addMouseListener(this); 
} 

public void start(){ 

    if(startButtonClicked = true){ 
     roomPage = 2; 
    } 
} 

Страницы:

public void paint(Graphics g){  
    switch (roomPage){ 
    case 0: homeScreen(g); break; 
    case 1: instructionsPage(g); break; 
    case 2: startPage(g); break; 
    } 
} 

когда мышь :

public void mouseReleased(MouseEvent me) { 
    // TODO Auto-generated method stub 

    xPos = me.getX(); 
    yPos = me.getY(); 

    if (xPos > startButtonX && xPos < startButtonX+216 && yPos >startButtonY && 
      yPos < startButtonY+85){ 
     startButtonClicked = true; 
    } 
    else{ 
     startButtonClicked = false; 
    } 
    repaint(); 


} 

У меня нет ошибок при запуске, но он сразу переходит на страницу 2, когда я запускаю его. :(помощь?

ответ

1
if(startButtonClicked = true){ 
    roomPage = 2; 
} 

вы назначаете startButtonClicked к истинным (что всегда верно) вместо условного оператора ==.

if(startButtonClicked == true){ 
    roomPage = 2; 
} 

или

if(startButtonClicked){ 
    roomPage = 2; 
} 
+0

Теперь, когда я изменил его на то, что номер комнаты не изменится:/ – Intrinza

+0

, потому что функция start() вызывается только в начале вашей программы; вам нужно вызвать эту функцию после того, как вы установили клик в значение true или просто измените номер комнаты, установив его в true. – Asura

0

Я изменил его :

if(startButtonClicked){ 
roomPage = 2; 
} 

Это bac k к нормальному снова, но когда я нажимаю кнопку, это не изменит комнату.