如何在没有Text Field Java的情况下监听键盘输入

我正在研究Java应用程序并与作为键盘输入设备的RFID阅读器连接。 该应用程序将用于员工时间跟踪,因此员工不应该看到他/她的RFID标签包含的代码。 目前,该应用程序打开一个jFrame,要求员工扫描其标签。 这是我想听键盘输入的地方。 所有RFID标签都是10位数字,所以我想使用某种正则表达式来检测卡片扫描的可能性。 如果有人能指出我正确的方向,或贡献一些代码,我将不胜感激。 提前致谢。 更新: 通过将以下内容添加到我的JFrame的构造函数中,我能够读取扫描程序的输入。 addKeyListener(new KeyListener(){ @Override public void keyPressed(KeyEvent e){ System.out.print(e.getKeyChar());} @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }); 所以现在确认Reader只是标准键盘输入。 以下是我为标记获取的示例:0006459027 现在,最大的问题是,我如何获取我得到的字符,并检测到它是一个10位数的字符串,并从那里触发事件以打开一个新的框架?

无法使用JavaMail读取邮件内容

我正在尝试使用JavaMail阅读邮件内容 Object msg = message.getContent(); Multipart mp = (Multipart) msg; for(int k = 0; k < mp.getCount(); k++) { BodyPart bp = mp.getBodyPart(k); if (bp.isMimeType("text/plain")) { String s = (String) bp.getContent(); System.out.println("Content:" + s); } else if(bp.isMimeType("text/html")) { String s = (String) bp.getContent(); System.out.println("Content:" + s); } } 但是我收到以下错误: java.lang.ClassCastException: java.lang.String cannot be cast to […]

通过Java客户端连接到WCF服务

我有WCF服务,它有2个端点:wsHttpBinding和basicHttpBinding。 我可以通过C#客户端连接到每个端点。 我的Wcf服务配置 我可以用Java生成wsdl。 你能告诉我示例代码,我如何在Java中使用basicHttpBinding?

为什么IntStream.range(0,100000).parallel.foreach需要比循环更长的正常时间

我刚刚开始学习Java中的Streams和parallel,我想知道为什么正常for循环比在向数组添加项目时并行的IntStream花费更少的时间。 package parallel; import java.util.stream.IntStream; public class Parallel { public static void main(String[] args) { final int[] intArray = new int[100000]; long startTime = System.currentTimeMillis(); IntStream.range(0, 100000).parallel().forEach(i -> intArray[i]=i); long endTime = System.currentTimeMillis(); System.out.println(“Parallel time: ” + (endTime-startTime)); final int[] intArray2 = new int[100000]; try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated […]

Java线程和MySQL

我有一个线程聊天服务器应用程序,需要MySQLvalidation。 让1个类创建MySQL连接,保持该连接打开并让每个线程使用该连接但使用自己的Query处理程序是最好的方法吗? 或者让所有线程与MySQL分开连接以进行身份​​validation更好? 或者让1个类处理查询和连接更好吗? 我们正在寻找一个应该能够处理多达10.000个连接/用户的聊天服务器。 我现在正在使用c3p0,我创建了这个: public static void main(String[] args) throws PropertyVetoException { ComboPooledDataSource pool = new ComboPooledDataSource(); pool.setDriverClass(“com.mysql.jdbc.Driver”); pool.setJdbcUrl(“jdbc:mysql://localhost:3306/db”); pool.setUser(“root”); pool.setPassword(“pw”); pool.setMaxPoolSize(100); pool.setMinPoolSize(10); Database database = new Database(pool); try { ResultSet rs = database.query(“SELECT * FROM `users`”); while (rs.next()) { System.out.println(rs.getString(“userid”)); System.out.println(rs.getString(“username”)); } } catch(Exception ex) { System.out.println(ex.getMessage()); } finally { database.close(); } […]

如何将表单的值从jsp发送到java

我有一个有30个不同领域的表格。 将它们全部传递给控制器​​需要每个都有一个属性以及一对getter,setter。 我将把表单字段作为对象并将对象发送到控制器。 我使用下面的代码* 但有些人建议从jsp调用java方法并使用JSTL这是一个不好的做法,但不知道如何使用JSTL实现它。 有没有其他方法可以做到这一点? * 我的JSP code to implement form goes here 控制器 public String Xclass(User obj){ return “output”; } 澄清我的类图如下: User Class { all the attributes and getters setters } myController class extends User { public String XClass(User obj){ … work on the inputes … return “output”; } }

使用DTO绑定多个动态创建的字段的相同属性名称

我有2个下拉菜单A和B A是正常下拉列表 B是多选下拉列表 A包含学校中的课程列表, B包含学校中的部门 还有一个用于动态创建这两个下拉菜单的按钮(可能有n个下拉菜单) 我想同时将n个下拉值保存到我的数据库,但问题是我所有动态创建的字段属性名称都与原始的两个下拉列表相同,这样我就可以获得输入到后端的最后一个下拉列表的值。 我可以使用js动态更改属性名称,但我无法在dto中动态创建变量。 我希望我的n个下拉值绑定到相同的DTO变量作为列表或类似的东西,有没有其他方法来实现这一点? 我研究并使用apache commons collections4和autopopulatingList但我没有找到任何适当的例子 我的DTO课程 public class TestDto { private Long fkcl; private String[] fkdiv; public Long getFkcl() { return fkcl; } public void setFkcl(Long fkcl) { this.fkcl = fkcl; } public String[] getFkdiv() { return fkdiv; } public void setFkdiv(String[] fkdiv) { this.fkdiv = fkdiv; } […]

特征和接口二进制兼容吗?

我很惊讶Scala在不同版本中是二进制不兼容的事实。 现在,因为在Java 8我们有默认的方法实现,它与我们提供的trait几乎相同,是否可以安全地在Java代码中使用特征? 我自己尝试使用它: trait TestTrait { def method(v : Int) def concrete(v : Int) = println(v) } public class Test implements TestTrait{ // Compile-error. Implement concrete(Int) @Override public void method(int v) { System.out.println(v); } } 但它拒绝编译。 编译器抱怨没有混淆concrete(Int) 。 虽然我在TestTrait指定了实现。

有一种简单的方法可以在Jhipster微服务网关上添加社交登录吗?

当我使用yo生成一个单一的应用程序时,我被问到是否要使用社交登录,但在微服务模型的网关创建过程中不会发生这种情况。 是否有一种在微服务网关上添加社交登录的简单方法,还是我需要手动创建?

getLastKnownLocation()始终返回null,所有提供者都是DummyLocationProvider

我看过很多关于这个问题的post,但没有一个为我提供解决方案。 我试图通过GPS(或最终,任何其他有效的提供商)获得用户位置。 但我总是得到零位置。 我确实得到了一张地图,并且可以设置一个任意位置,是不起作用的提供者。 我正确设置了我的MAPS键 (也检查了它是正确的),所有必要的权限设置( android.permission.INTERNET , android.permission.ACCESS_COARSE_LOCATION , android.permission.ACCESS_FINE_LOCATION ),事实上,所有似乎都在工作昨天很好! 我尝试使用此代码获取所有可能的提供程序: List providers = locManager.getAllProviders(); for (String provider : providers) { printProvider(provider); } 这显示了所有提供者(在我的情况下为4)是DummyLocationProviders。 我试图在手机上运行我的应用程序,而不是模拟器 (虽然我也尝试使用模拟器,启用GPS,但无济于事)。 这是我用来获取位置的代码(昨天工作得很好): //Get criteria Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); //Get best provider String bestProvider = locManager.getBestProvider(criteria, false); printProvider(bestProvider); //get the current location (last known location) from the […]