【问题标题】:Capslock warning大写锁定警告
【发布时间】:2013-02-08 19:05:28
【问题描述】:

我正在尝试创建一个应用程序,因此当用户尝试输入大写锁定时 JTextfield 中的字母或其他内容会引发错误,通知用户 关闭大写锁定。

import java.awt.*;
import java.awt.event.*;

public class NewClass
{
    private static String check="false";

    public static void main(String[] args)
    {
        if ( Toolkit.getDefaultToolkit().getLockingKeyState (KeyEvent.VK_CAPS_LOCK ) );
        check="true";

        if(check.equals(true));
        System.out.println("Turn it off");
        {
        }
    }

如何使用布尔值

( Toolkit.getDefaultToolkit().getLockingKeyState (KeyEvent.VK_CAPS_LOCK ) );

所以如果是真的显示消息关闭它?

【问题讨论】:

  • 不应该是if(check.equals("true"))吗?
  • 您想从if-statements 的末尾删除那些;s!
  • 代码中的大括号对不匹配。

标签: java eclipse boolean capslock


【解决方案1】:

这个

if(check.equals(true));

应该是

if(check.equals("true"))

并从第一个 if 语句中删除 ;,尽管您真正需要做的只是

if(Toolkit.getDefaultToolkit().getLockingKeyState (KeyEvent.VK_CAPS_LOCK ))
{
     System.out.println("Turn it off");
}

【讨论】:

    【解决方案2】:

    这应该可行!

    boolean state= Toolkit.getDefaultToolkit()
                        .getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
    

    【讨论】:

      【解决方案3】:

      这应该可以工作

      if (Toolkit.getDefaultToolkit().getLockingKeyState(
              KeyEvent.VK_CAPS_LOCK)) {
          check = "true";
      }
      if (check.equals("true")) {
          System.out.println("Turn it off");
      }
      

      你的代码有问题,

      1) if 语句中的分号。请记住如果 if 块不会执行,则结尾是否有分号。

         if (true); {
           // wont be executed
         }
      
         if (true) {
           // will be executed    
         }
      

      2) 比较错误。它应该是。如果您将“检查”变量定义为布尔值,那么您的旧代码就可以了。由于您将它们用作字符串,因此您应该等同于如下。我建议你在那里使用布尔类型。

      if (check.equals("true"))
      

      【讨论】:

        【解决方案4】:

        您不应该只查看 CapsLock,因为有人可以按 shift 键输入大写字母。向 JTextField 添加一个键侦听器并检查键入的字母。您甚至可以将大写字母更改为小写。

            final JTextField jTextField = new JTextField() {
                {
                    addKeyListener(new KeyListener() {
                        public void keyTyped(final KeyEvent e) {
                            System.out.println(e.getKeyChar());
                            System.out.println(e.getModifiers());
                        }
                        public void keyReleased(final KeyEvent e) {
                        }
                        public void keyPressed(final KeyEvent e) {
                        }
                    });
                }
            };
        

        【讨论】:

          猜你喜欢
          • 2017-12-15
          • 1970-01-01
          • 1970-01-01
          • 2017-08-17
          • 1970-01-01
          • 2020-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多