Обновление JLabel с помощью setText

enter coclass Gamehandler extends JFrame implements ActionListener {
//questions
JPanel qpanel = new JPanel();
//answers
JPanel aPanel = new JPanel();
JRadioButton[] responses;
ButtonGroup group = new ButtonGroup();
//bottom
JPanel botPanel = new JPanel();
JButton next = new JButton("next");
JButton finish = new JButton("Finish");
static String guess= " ";
readExcel re = new readExcel();
JLabel label = new JLabel();
public void actionPerformed(ActionEvent event) {
    re.readExcel1();
    Random rm = new Random();
    int radiobuttonsize = readExcel.ColumnTwo.size();
    radioButtons rbs = new radioButtons();
    scoreTest   sr = new scoreTest();
    responses = new JRadioButton[readExcel.ColumnTwo.size()];
    //adds my radio buttons 
    //adds action listeneners 
    //adds get actions
    for(int i=0;i<readExcel.ColumnTwo.size();i++){
        responses[i]=new JRadioButton(readExcel.ColumnTwo.get(i));
        group.add(responses[i]);
        aPanel.add(responses[i]);
        responses[i].addActionListener(rbs);
       responses[i].setActionCommand (String.valueOf(i));
   Object selection  =    responses[0].getAction();

    }

   int randomguessArray = rm.nextInt(radiobuttonsize);
    guess =  readExcel.ColumnOne.get(randomguessArray);
    label = new JLabel();
    label.setText(guess);
    qpanel.add(label);
    JFrame frame = new JFrame("Test");
    frame.setSize(400, 300);
    frame.setResizable(true);
    frame.setVisible(true);
    frame.add(aPanel);
    botPanel.add(next);
    botPanel.add(finish);
    frame.getContentPane().add(qpanel,BorderLayout.NORTH);
    frame.getContentPane().add(aPanel,BorderLayout.CENTER);
    frame.getContentPane().add(botPanel,BorderLayout.SOUTH);
    next.addActionListener(sr);

}

public void changeText(){
 label.setText("Work");
 System.out.print("hello");

}

Я просто хочу добавить прослушиватель действий в свой JButton, а затем иметь возможность изменить JLabel в моем том же фрейме здесь. Это важная часть моей программы. Это кажется прямым, и я, честно говоря, не могу понять это. Возможно, это потому, что сейчас 3:53 утра, а я только что проработал 8 часов. Я хотел бы иметь свежий взгляд на мой код.


person Louis345    schedule 15.08.2013    source источник
comment
Я прочитал бесчисленное количество материалов и понятия не имею, почему мой код не работает. Не знаю, что мне нужно сделать, чтобы получить ответ. Мой код структурирован, вот почему? Я действительно трачу много времени на одну эту проблему, и, на мой взгляд, она должна работать.   -  person Louis345    schedule 16.08.2013


Ответы (1)


В случае, если у кого-то в 2014 году все еще есть такая же проблема, метод revalidate() должен пригодиться.

person Jared    schedule 20.08.2014
comment
Непонятно, почему вызов revalidate() поможет изменить текст метки. У OP есть код для вызова setText() в функции, но он никогда не вызывает эту функцию. - person nobody; 21.08.2014