package edu.ch4;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.*;public class Guanli {
public static void main(String[] args){
Display display=new Display();//创建一个display对象。
final Shell shell=new Shell(display);//shell是程序的主窗体
Shell shell1=new Shell();
// shell1.getShell(Jiemian);
//getShell
shell.setText("人事管理系统");
Menu mainMenu=new Menu(shell,SWT.BAR);
shell.setMenuBar(mainMenu);
{
//"文件"项
MenuItem fileItem=new MenuItem(mainMenu,SWT.CASCADE);
fileItem.setText("文件");
Menu fileMenu=new Menu(shell,SWT.DROP_DOWN);
fileItem.setMenu(fileMenu);
MenuItem newFileItem=new MenuItem(fileMenu,SWT.CASCADE);
newFileItem.setText("登录选项");
newFileItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
}
});
new MenuItem(fileMenu, SWT.SEPARATOR);
MenuItem newFileItem1=new MenuItem(fileMenu,SWT.CASCADE);
newFileItem1.setText("新建1");
newFileItem1.setEnabled(false);
//newFileItem1.setVisible(false);
}
shell.pack();
shell.open();
while(!shell.isDisposed()){
display.sleep();
//如果主窗体没有关闭则一直循环
if(!display.readAndDispatch()){ //如果display不忙
//休眠
}
}
display.dispose();
}
//销毁display
}上面我想点“登陆选项”菜单选项,然后打开另一个叫Jiemian的类里面的shell窗口(这个类里面有main方法,是我做好的登录界面,这个类的代码我贴出来)那么“登陆选项”菜单选项 里面的监听事件应该怎么写?
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.*;public class Jiemian {
public static void main(String[] args)
{
Display display=new Display();
final Shell shell=new Shell(display);
shell.setText("系统登录");
shell.setSize(300, 300);
Label lb1=new Label(shell,SWT.NONE);
lb1.setText("请输入姓名:");
lb1.setBounds(20,50,70,20);
final Text text1=new Text(shell,SWT.BORDER);
text1.setBounds(100,49,70,20);
Label lb2=new Label(shell,SWT.NONE);
lb2.setText("请输入年龄:");
lb2.setBounds(20,100,70,20);
final Text text2=new Text(shell,SWT.BORDER);
text2.setBounds(100,100,70,20);
Button bt=new Button(shell,SWT.NONE);
bt.setBounds(20,150,70,20);
bt.setText("确定");
bt.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
MessageBox dialog=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
dialog.setText("组件选择事件");
dialog.setMessage("您的姓名是:"+text1.getText()+"您的年龄是:"+text2.getText());
dialog.open();
}
});
Button bt1=new Button(shell,SWT.NONE);
bt1.setBounds(100,150,70,20);
bt1.setText("重置");
bt1.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
text1.setText("");
text2.setText("");
}
}
);
shell.open();
while(!display.isDisposed())
{
display.sleep();
if(!display.readAndDispatch())
{
}
}
display.dispose();
}
}
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.*;public class Guanli {
public static void main(String[] args){
Display display=new Display();//创建一个display对象。
final Shell shell=new Shell(display);//shell是程序的主窗体
Shell shell1=new Shell();
// shell1.getShell(Jiemian);
//getShell
shell.setText("人事管理系统");
Menu mainMenu=new Menu(shell,SWT.BAR);
shell.setMenuBar(mainMenu);
{
//"文件"项
MenuItem fileItem=new MenuItem(mainMenu,SWT.CASCADE);
fileItem.setText("文件");
Menu fileMenu=new Menu(shell,SWT.DROP_DOWN);
fileItem.setMenu(fileMenu);
MenuItem newFileItem=new MenuItem(fileMenu,SWT.CASCADE);
newFileItem.setText("登录选项");
newFileItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
}
});
new MenuItem(fileMenu, SWT.SEPARATOR);
MenuItem newFileItem1=new MenuItem(fileMenu,SWT.CASCADE);
newFileItem1.setText("新建1");
newFileItem1.setEnabled(false);
//newFileItem1.setVisible(false);
}
shell.pack();
shell.open();
while(!shell.isDisposed()){
display.sleep();
//如果主窗体没有关闭则一直循环
if(!display.readAndDispatch()){ //如果display不忙
//休眠
}
}
display.dispose();
}
//销毁display
}上面我想点“登陆选项”菜单选项,然后打开另一个叫Jiemian的类里面的shell窗口(这个类里面有main方法,是我做好的登录界面,这个类的代码我贴出来)那么“登陆选项”菜单选项 里面的监听事件应该怎么写?
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.*;public class Jiemian {
public static void main(String[] args)
{
Display display=new Display();
final Shell shell=new Shell(display);
shell.setText("系统登录");
shell.setSize(300, 300);
Label lb1=new Label(shell,SWT.NONE);
lb1.setText("请输入姓名:");
lb1.setBounds(20,50,70,20);
final Text text1=new Text(shell,SWT.BORDER);
text1.setBounds(100,49,70,20);
Label lb2=new Label(shell,SWT.NONE);
lb2.setText("请输入年龄:");
lb2.setBounds(20,100,70,20);
final Text text2=new Text(shell,SWT.BORDER);
text2.setBounds(100,100,70,20);
Button bt=new Button(shell,SWT.NONE);
bt.setBounds(20,150,70,20);
bt.setText("确定");
bt.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
MessageBox dialog=new MessageBox(shell,SWT.OK|SWT.ICON_INFORMATION);
dialog.setText("组件选择事件");
dialog.setMessage("您的姓名是:"+text1.getText()+"您的年龄是:"+text2.getText());
dialog.open();
}
});
Button bt1=new Button(shell,SWT.NONE);
bt1.setBounds(100,150,70,20);
bt1.setText("重置");
bt1.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
text1.setText("");
text2.setText("");
}
}
);
shell.open();
while(!display.isDisposed())
{
display.sleep();
if(!display.readAndDispatch())
{
}
}
display.dispose();
}
}
如:xxx.addMouseListener(new MouseAdapter() {
doclick() {
new newJFrame();
}
})
我改为
newFileItem.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e) {
new Jiemian();
}
});然后怎么样才能让Jiemian显示呢?Jiemian这个类是包含main方法的,我已经做好的一个登陆界面
public void widgetSelected(SelectionEvent e) {
Jiemian zhuan= new Jiemian();//main().setVisible(true);
zhuan.open();
zhuan.pack();
}
});我事件改为这个。。把Jiemian继承shell为什么。。点了登陆菜单选项弹出来一个窗口,但那个窗口什么都没
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.*;
public class Jiemian extends Shell { protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
public Jiemian(Display display)
{
super(display, SWT.SHELL_TRIM);
Label lb1=new Label(this,SWT.NONE);
lb1.setText("请输入姓名:");
lb1.setBounds(20,50,70,20);
final Text text1=new Text(this,SWT.BORDER);
text1.setBounds(100,49,70,20);
Label lb2=new Label(this,SWT.NONE);
lb2.setText("请输入年龄:");
lb2.setBounds(20,100,70,20);
final Text text2=new Text(this,SWT.BORDER);
text2.setBounds(100,100,70,20);
Button bt=new Button(this,SWT.NONE);
bt.setBounds(20,150,70,20);
bt.setText("确定");
bt.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
MessageBox dialog=new MessageBox(this,SWT.OK|SWT.ICON_INFORMATION);
dialog.setText("组件选择事件");
dialog.setMessage("您的姓名是:"+text1.getText()+"您的年龄是:"+text2.getText());
dialog.open();
}
});
Button bt1=new Button(this,SWT.NONE);
bt1.setBounds(100,150,70,20);
bt1.setText("重置");
bt1.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent e){
text1.setText("");
text2.setText("");
}
}
);
}
public static void main(String[] args)
{
Display display = Display.getDefault();
final Jiemian shell=new Jiemian(display);
shell.setText("系统登录");
shell.setSize(300, 300);
shell.layout();
shell.open();
while(!shell.isDisposed())
{
display.sleep();
if(!display.readAndDispatch())
{
}
}
display.dispose();
}
}MessageBox dialog=new MessageBox(this,SWT.OK|SWT.ICON_INFORMATION);编译不通过,为什么?回答了这个问题...给50分- -借帖拉
MessageBox messageBox = new MessageBox(this, SWT.OK|SWT.CANCEL|SWT.ICON_WARNING); 你那样提示什么错误啊