2016-03-14 2 views
0

Я новичок в этом мероприятии с действием и прослушиванием действий (нажатие мыши). Я использовал это в своем коде:Отображение информации о Jpanel

// This is the single event handler for all the buttons 
public void actionPerformed(ActionEvent e) { 
JButton selectedBtn = (JButton) e.getSource(); 

for (int row = 0; row < buttons.length; row++) { 
    for (int col = 0; col < buttons[row].length; col++) { 
    if (buttons[row][col] == selectedBtn) { 
     moves++; //incrementing the moves 
     System.out.printf("moves: %d%n", moves); 
     System.out.printf("Selected row: %d%n", row+1); 
     System.out.printf("Selected column: %d%n", col+1); 

    } 
    } 
} 

Этот фрагмент кода отображает правильные строки и столбцы кнопки. но то, что я пытаюсь сделать, это то, что я пытаюсь отобразить эту информацию перед своими Jlabels.

т.е. если кнопка нажата, и он лежит на колонке 4 строки 2, и он должен показать, как это:

enter image description here

вместо этого он показывает, как это в консоли вывода:

moves: 1 
Selected row: 3 
Selected column: 4 

любые идеи о том, как изменить эти Jlabels, чтобы эта информация отображалась на них?

это мои JLabels

//labels 
JLabel label1 = new JLabel("COL: "); 
label1.setLocation(10,260); 
label1.setSize(100,100); 
add(label1); 

JLabel label2 = new JLabel("ROW: "); 
label2.setLocation(10,280); 
label2.setSize(100,100); 
add(label2); 

любая помощь будет оценена :)

+0

Непонятно, в чем именно вы нуждаетесь. Если вам просто нужно отобразить эти значения в кадре, вы можете использовать отдельные JLabels для значений, а затем обновить их в actionPerformed event или использовать для него не редактируемые JTextFields. –

+0

['JLabel # setText'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/JLabel.html), вы также можете взглянуть на [Как использовать ярлыки ] (http://docs.oracle.com/javase/tutorial/uiswing/components/label.html). Помните, что вам, вероятно, понадобятся ярлыки для полей экземпляра класса, чтобы иметь возможность их модифицировать. – MadProgrammer

+0

@Arsal Abbas Вы спрашиваете, как отображать текст в JLabels? – user3437460

ответ

0

Попробуйте использовать setText() на экземпляре JLabel.

+0

Я попытался сделать что-то вроде этого: column.setText ((col + 1) .getText()); Поскольку столбец - это мое имя метки, которое я хочу обновить, а «col + 1» - это номер столбца jbutton im get. , но он продолжает давать мне ошибку, что «int не может быть разыменован» – arsalunic612

+0

Что такое столбец? Что я сказал, вы прямо используете 'label.setText (« некоторый текст »)'. Обратитесь к трейлеру Oracle для [Java Swing on JLabel] (https://docs.oracle.com/javase/tutorial/uiswing/ компоненты/label.html). – Prashant

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