SWT中按钮回车响应问题

时间:2021-01-10 22:23:39
我要做一个类似qq登录框的界面,输入用户名和密码后按回车后便可登录,如何实现按下回车后就直接登录呢?
还有当程序开始时如何使这个登录框定位在屏幕中间呢?

8 个解决方案

#1


该回复于2015-05-26 13:02:26被管理员删除

#2


public void keyPressed(final KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER){
    登录的代码~~~~~~
}
}
至于定位显示框,可以看一下API。上面很详细。

#3


这个keyPressed应该是事件里面的吧。那么这个keyListener应该加在哪个控件上呢?

#4


shell.setDefaultButton(button);

#5


狂人三号的方法行。

#6


那定位呢?

#7


不好意思,没注意你下面那句定位的,hoho,现在帖上两种方法,随便选一个即可


/**
 * 设置窗口位于屏幕中间
 * @param shell 要调整位置的窗口对象
 */
public static void center(Shell shell)
{
//获取屏幕高度和宽度
int screenH = Toolkit.getDefaultToolkit().getScreenSize().height;
int screenW = Toolkit.getDefaultToolkit().getScreenSize().width;
//获取对象窗口高度和宽度
int shellH = shell.getBounds().height;
int shellW = shell.getBounds().width;

//如果对象窗口高度超出屏幕高度,则强制其与屏幕等高
if(shellH > screenH)
shellH = screenH;

//如果对象窗口宽度超出屏幕宽度,则强制其与屏幕等宽
if(shellW > screenW)
shellW = screenW;

//定位对象窗口坐标
shell.setLocation(((screenW - shellW) / 2), ((screenH - shellH) / 2));
}

/**
 * 设置窗口位于屏幕中间
 * @param display 设备
 * @param shell 要调整位置的窗口对象
 */
public static void center(Display display, Shell shell)
    {
        Rectangle bounds = display.getPrimaryMonitor().getBounds();
        Rectangle rect = shell.getBounds();
        int x = bounds.x + (bounds.width - rect.width) / 2;
        int y = bounds.y + (bounds.height - rect.height) / 2;
        shell.setLocation(x, y);
    }

#8


非常感谢

#1


该回复于2015-05-26 13:02:26被管理员删除

#2


public void keyPressed(final KeyEvent e){
if(e.getKeyCode() == KeyEvent.VK_ENTER){
    登录的代码~~~~~~
}
}
至于定位显示框,可以看一下API。上面很详细。

#3


这个keyPressed应该是事件里面的吧。那么这个keyListener应该加在哪个控件上呢?

#4


shell.setDefaultButton(button);

#5


狂人三号的方法行。

#6


那定位呢?

#7


不好意思,没注意你下面那句定位的,hoho,现在帖上两种方法,随便选一个即可


/**
 * 设置窗口位于屏幕中间
 * @param shell 要调整位置的窗口对象
 */
public static void center(Shell shell)
{
//获取屏幕高度和宽度
int screenH = Toolkit.getDefaultToolkit().getScreenSize().height;
int screenW = Toolkit.getDefaultToolkit().getScreenSize().width;
//获取对象窗口高度和宽度
int shellH = shell.getBounds().height;
int shellW = shell.getBounds().width;

//如果对象窗口高度超出屏幕高度,则强制其与屏幕等高
if(shellH > screenH)
shellH = screenH;

//如果对象窗口宽度超出屏幕宽度,则强制其与屏幕等宽
if(shellW > screenW)
shellW = screenW;

//定位对象窗口坐标
shell.setLocation(((screenW - shellW) / 2), ((screenH - shellH) / 2));
}

/**
 * 设置窗口位于屏幕中间
 * @param display 设备
 * @param shell 要调整位置的窗口对象
 */
public static void center(Display display, Shell shell)
    {
        Rectangle bounds = display.getPrimaryMonitor().getBounds();
        Rectangle rect = shell.getBounds();
        int x = bounds.x + (bounds.width - rect.width) / 2;
        int y = bounds.y + (bounds.height - rect.height) / 2;
        shell.setLocation(x, y);
    }

#8


非常感谢