6 java
class Test extends JPanel implements MouseListener
{
private JButton b1, b2, b3, b4;
public Test()
{
setLayout (new GridLayout (2, 3));
b1 = new JButton ("Button 1");
b2 = new JButton ("Button 2");
add (b1);
add (b2);
}
public void mousePressed (MouseEvent event)
{
if (event.getText() == b1.getText())
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道在类MouseListener或JPanel类中是否有一个方法允许我获取单击按钮的文本.谢谢
您应该尝试查看ActionListener并实现它。触发这些操作后,每当您单击按钮时,这就是应该的工作方式:
class Test extends JPanel implements ActionListener {
...
public Test() {
super();
...
b1 = new JButton("Button 1");
...
add(b1);
...
b1.addActionListener(this);
...
}
@Override
public void actionPerformed(ActionEvent event) {
System.out.println(((JButton) event.getSource()).getText());
if (event.getSource() == b1) {
// do sth
} else if (event.getSource() == b2) {
// do sth else
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后编写一个main方法,并将一个新的Testpanel 实例添加到中JFrame,看看它是如何工作的。
可以在以下网站上找到教程:http : //docs.oracle.com/javase/tutorial/uiswing/components/button.html
查看MouseEvent api 有一个 getSource() 方法,您可以使用该方法返回事件发生的对象。然后检查该对象是否是按钮的实例。如果是,您可以将其转换为按钮类型,然后从那里获取文本。
public void mousePressed (MouseEvent event){
Object o = event.getSource();
JButton b = null;
String buttonText = "";
if(o instanceof JButton)
b = (JButton)o;
if(b != null)
buttonText = b.getText();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31498 次 |
| 最近记录: |