如有一个按钮(selece),我要给这个按钮下面添加几个东西,1、public int add(int m,int n);
2、public double div(int m,int n); 3、public int sub(int m,int n);就像是下拉列表一样按下按钮,按钮下面显示这几个方法,然后我可以选择其中的一个。我想做的就跟Eclipse里Run按钮那样,按右边的三角号,就会显示要运行的类那样。如何做啊,用什么组件啊?
我还不知道Eclipse里Run按钮和紧挨着他的三角按钮是属于一个整体,还是分开的!他的源程序在安装文件的哪个文件夹里,我实在找不到!谢谢!
2、public double div(int m,int n); 3、public int sub(int m,int n);就像是下拉列表一样按下按钮,按钮下面显示这几个方法,然后我可以选择其中的一个。我想做的就跟Eclipse里Run按钮那样,按右边的三角号,就会显示要运行的类那样。如何做啊,用什么组件啊?
我还不知道Eclipse里Run按钮和紧挨着他的三角按钮是属于一个整体,还是分开的!他的源程序在安装文件的哪个文件夹里,我实在找不到!谢谢!
根据鼠标点的位置,判断是执行,还是三角的下拉菜单下拉菜单应该使用的popupmenu之类的控件
随便看看吧
package to.shin.sai;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;public class Test4PopupMenu { /**
* @param args
*/
public static void main(String[] args) {
new Test4PopupMenu();
} public Test4PopupMenu() {
Display dis = Display.getDefault();
final Shell sh = new Shell(dis);
sh.setSize(500, 400); final Button btn = new Button(sh, SWT.NONE);
btn.setBounds(50, 50, 80, 20);
btn.setText("|"); btn.addMouseListener(new MouseListener() { @Override
public void mouseUp(MouseEvent e) {
// if (e.x < (btn.getBounds().width / 2)) {
// when the mouse down in left half and up in any area
MessageBox mb = new MessageBox(sh);
mb.setMessage("This is left half..");
mb.open();
// }
} @Override
public void mouseDown(MouseEvent e) {
if (e.x > (btn.getBounds().width / 2)) {
// when the right half is clicked
Menu m = new Menu(btn);
m.setLocation(btn.toDisplay(0, 20).x, btn.toDisplay(0, 20).y);
MenuItem mi = new MenuItem(m, SWT.NONE);
mi.setText("test1");
mi = new MenuItem(m, SWT.NONE);
mi.setText("test2");
m.setVisible(true);
}
} @Override
public void mouseDoubleClick(MouseEvent arg0) {
}
}); sh.open();
while (sh != null && !sh.isDisposed()) {
if (!dis.readAndDispatch())
dis.sleep();
}
}}