2013-12-24 2 views
2

Я пытался узнать Java уже около недели, но я застрял в одной ошибке. Предполагается, что это приращение переменной «щелчки» на 1 каждый раз при нажатии кнопки, но я получаю ту же ошибку:Принудительное значение при нажатии JButton

import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 


public class Testclass { 

    private JFrame frame; 
    private JPanel panel; 
    private JButton button1; 
    private JLabel label; 


    public Testclass() { 

     gui(); 

    } 

    public void gui() { 

     final int clicks = 0; 

     frame = new JFrame("Test"); 
     frame.setVisible(true); 
     frame.setSize(600,400); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     panel = new JPanel(); 
     panel.setBackground(Color.cyan); 

     button1 = new JButton("Test"); 
     label = new JLabel("Button Click Count: "); 

     button1.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent e) { 

       clicks++; 
       label.setText("Click Count: " +clicks); 

      } 


     }); 

     panel.add(label); 
     panel.add(button1); 

     frame.add(panel); 



    } 

    public static void main (String[] args) { 

     new Testclass(); 


    } 

} 

Он продолжает давать мне ошибку на линии 42, где «щелкает» увеличивается на единицу " Несколько маркеров в этой строке « любая помощь приветствуется. спасибо, Джек

+0

* «Он продолжает давать мне ошибку на линии 42 ..» * Дуглас Адамс был *** прав! *** –

ответ

3
final int clicks = 0; 

сделать clicks как член экземпляра. Теперь вы окончательно не можете увеличить его.

Если вы удаляете финал в текущем месте, вы не можете получить доступ к actionPerformed, поэтому сделайте его экземпляром.

public class Testclass { 

    private int clicks = 0; 
1

Объявить clicks в качестве переменной экземпляра, из-за вас не может изменить final переменную.

Подробнее о varibles in java и final modifier.

0
final int clicks = 0 

Конечное значение не может Название переменной быть изменить таким образом сделать свой, как public Название переменной или private его зависит от ваших потребностей

private int clicks =0 
1

final это заявление, чтобы сказать, что переменная является константой.

Вы должны удалить final и установить public или private. По умолчанию, если вы ничего не установили, это будет private. Кроме того, вы должны объявить его как члена класса.

По умолчанию, eclipse предлагает вам объявить переменную как final, но во много раз это неверно.

Смежные вопросы