2016-03-14 109 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前显示这些信息。

即如果按下一个按钮,它位于一个第2行和第4栏它应该显示这样的:

enter image description here

代替它示出了如本中输出控制台:

moves: 1 
Selected row: 3 
Selected column: 4 

有关如何修改这些Jlabels以便将这些信息显示在其上的任何想法?

这些都是我的JLabel

//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事件中,或者使用不可编辑的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

试穿的JLabel实例使用setText()

+0

我试着做这样的事情: column.setText((col + 1).getText()); 因为列是我想要更新的标签名称,而“col + 1”是jbutton即时获取的列数 ,但它一直给我一个“int无法解除引用”的错误 – arsalunic612

+0

列是什么?我的看法是,你直接使用'label.setText(“some text”)'。请参考Oracle JLabel上的[Java Swing](https://docs.oracle.com/javase/tutorial/uiswing/组件/ label.html)。 – Prashant