如何处理输入?

时间:2016-12-14 20:07:39

标签: java swt

您好,这是我在这里的第一篇文章,我正在尽力学习编程! 我想在Eclipse中用SWT创建一个程序。 这是一个基本程序,它应该接收来自用户的输入并依赖于(if语句)用户输入的当天,显示某个输出。

问题:我首先尝试将if语句放在文本字段下,但我注意到我需要某种按钮才能运行,否则它不起作用!

输入错误的位置:Dilluns未输出:MATESSS!

public void open() {
    Display display = Display.getDefault();
    createContents();
    elsllibres.open();
    elsllibres.layout();
    while (!elsllibres.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
}

protected void createContents() {
    elsllibres = new Shell();
    elsllibres.setSize(450, 300);
    elsllibres.setText("OSKARITOOO Industries");

    Label lblQuinsLlibresCal = new Label(elsllibres, SWT.NONE);
    lblQuinsLlibresCal.setBounds(10, 10, 360, 15);
    lblQuinsLlibresCal.setText("QUINS LLIBRES CAL PORTAR AVUI?");

    Label lblIndicaElDia = new Label(elsllibres, SWT.NONE);
    lblIndicaElDia.setBounds(10, 31, 96, 15);
    lblIndicaElDia.setText("INDICA EL DIA:");

    text_1 = new Text(elsllibres, SWT.BORDER);
    text_1.setText("EX: Dilluns, Dimarts...");
    text_1.setBounds(10, 52, 123, 21);

    Label info = new Label(elsllibres, SWT.NONE);
    info.setBounds(10, 79, 174, 15);
    info.setText("Cal portar els llibres de...");

    resultat = new Label(elsllibres, SWT.NONE);
    resultat.setBounds(10, 100, 207, 15);

    Button ok = new Button(elsllibres, SWT.NONE);
    ok.addTouchListener(new TouchListener() {
        public void touch(TouchEvent arg0) {
            String quediaes;
             quediaes = text_1.toString();
            if(quediaes.equals("Dilluns")){
                resultat.setText("MATESSSS!");
            }
        }
    });
    ok.setBounds(142, 48, 75, 25);
    ok.setText("OK");


    text_1.addMouseTrackListener(new MouseTrackAdapter() {
        @Override
        public void mouseEnter(org.eclipse.swt.events.MouseEvent e) {
            text_1.setText("");
        }
    });
}

1 个答案:

答案 0 :(得分:0)

您正在使用触控侦听器,需要支持触控的设备(也必须启用)。

假设您使用普通PC,则需要为按钮使用选择侦听器:

Button ok = new Button(elsllibres, SWT.NONE);
ok.addSelectionListener(new SelectionAdapter()
  {
    @Override
    public void widgetSelected(final SelectionEvent e)
    {
      String quediaes = text_1.getText();  // getText not toString

      if (quediaes.equals("Dilluns")) {
         resultat.setText("MATESSSS!");
    }
  }
});

您还必须调用文本控件的getText()方法,您使用的toString方法不会返回输入文本。