用swt插件做计算器,监听所有按钮。通过按钮text值判断哪个按钮被点击,如"0"按钮被点击,就在text框里加个0.现在问题是怎样在监听函数里得到button的text值。10个数字按钮用一个监听事件来监听的。下面是代码:
Button button = new Button(shell, SWT.NONE);
button.setText("2");
button.setBounds(140, 86, 80, 27);
button.addSelectionListener(al);
//按钮定义
SelectionListener al = new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent e) {
// TODO Auto-generated method stub
//Widget b=e.widget
text.setText(e.getSource().toString());
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub
}
};//监听事件
在按钮定义的时候可以用getText()方法得到button text值。在监听函数里有getSource()方法,得到的是Button {0}。我想要的只是个0。有什么方法可以得到button text属性(在监听函数里)。
俺是新手,假期学Java,想做个计算器来贯穿Java学习过程。
求指点。
你们怎么学习Java的?
在eclipse里装了swt的例子,还在弄源码。例子像是实验性的东西。有没有swt的例子推荐下。最好有源码。还在官网找文档...
It has been solved. I searched for information for a long time (official website Javadoc document, swt example...). The key is that you are not familiar with controls and control method properties.
Solution:
Define an auxiliary Button to receive button information from the listening event
private static Button button_temp;
Assign a value to button_temp in the listening event, so that button_temp can get the Text value using the getText() method.
button_temp=(Button) e.widget;
System.out.println(button_temp.getText());