Tag: 输入

SwingUtilites:如何从Java中的另一个线程返回值?

我正在尝试用Java创建一个应用程序。 为了使Swing正常工作,我这样做了: public static void main(String[] array){ String outerInput; SwingUtilities.invokeLater(new Runnable(){ @Override public void run() { // I want this string input. String input = JOptionPane.showInputDialog( null,”Stop ?”, JOptionPane.QUESTION_MESSAGE); }); // How can I get this input value in String outerInput? } 我如何在我的主体中获得此输入字符串?

保持Java套接字打开?

我正在制作一个会自动更新的程序/游戏。 我有更新部分,但没有检查版本。 我本以为这很容易。 inheritance人我做了什么。 我为游戏写了一个更新程序,我写了一个服务器。 每次客户端/更新程序连接时,服务器都会启动一个线程。 线程处理一切。 游戏更新程序读取名为version.txt的文件,并提供版本号(默认为0.0.1)并将其发送到服务器。 服务器确实接收了版本,并将System.out.println(); 如果版本匹配,如果我更改版本,它会更改输出。 这部分有效。 但就目前而言。 该过程的第二部分是服务器然后只发送一个名为NPS Game.txt的文本文件(它发送任何内容,但txt很容易测试),客户端用新的版本替换旧版本的文件发送。 问题是我一直收到一个错误,说Socket已关闭。 我尝试过使用socket.setKeepAlive(true); 但这并没有改变任何东西(我把它放在客户端和服务器上)。 这是代码: 服务器: package main; import java.io.*; import java.net.*; import javax.swing.JOptionPane; public class Server { static ServerSocket serverSocket = null; static Socket clientSocket = null; static boolean listening = true; public static void main(String[] args) throws IOException { try […]

Java,用冒号分割输入文件

我想在冒号字符的java中拆分一些字符串。 字符串的格式为: Account:Password 。 我想分开令牌: Account和Password 。 最好的方法是什么?

继续阅读数字,直到使用扫描仪到达换行符

我想从控制台读取几个数字。 我想这样做的方法是让用户输入一个由空格分隔的数字序列。 代码执行以下操作: Scanner sc = new Scanner(System.in); while (sc.hasNextInt()){ int i = sc.nextInt(); //… do stuff with i … } 问题是,如何在到达新线时停止(同时保持上面易于阅读的代码)? 在上面的参数中添加!hasNextLine()会使其立即退出循环。 一种解决方案是读取整行并解析数字,但我认为有点破坏了hasNextInt()方法的目的。

扫描仪与InputStreamReader

有没有人碰巧知道下面两种读取输入文件的方法之间的性能是否存在差异? 谢谢。 1)使用扫描仪和文件读取文件 Scanner input = new Scanner(new File(“foo.txt”)); 2)使用InputStreamReader和FileInputStream读取文件 InputStreamReader input = new InputStreamReader(new FileInputStream(“foo.txt”));

如何检测Java中是否按下了某个键?

我是Java的初学者,我一直在研究如何检测用户是否按下了一个键(例如箭头键)。 显然有很多方法可以做这样的事情,我发现这个方法对我有用: public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); switch( keyCode ) { case KeyEvent.VK_UP: // handle up break; case KeyEvent.VK_DOWN: // handle down break; case KeyEvent.VK_LEFT: // handle left break; case KeyEvent.VK_RIGHT : // handle right break; } } 问题是我不知道KeyEvent是什么。 当我打电话给方法并告诉我一个例子时,有人能告诉我在括号中放什么吗? PS:不要把我送到其他网站,我可能已经看过了,他们只是让我更加困惑……

输入大数字以避免NumberFormatException

我必须控制从1到9999999999的输入(表示学校的注册号)原始类型long只能容纳大约2.000.000.000,我该如何存储这个大小的数字?

用户输入validation,强制执行仅包含字母的字符串

我试图在我的一个方法中建立一个用户输入validation系统…它工作正常到一个范围,但尽管代码,它仍然允许整数作为有效输入,我不希望它,我怎么能改变这段代码,只允许字母(字符串)作为有效输入。 我在这一点上感到困惑,我尝试使用这个系统整数,它完美无缺,但有字母,无济于事。 洞察? public class Player { private static String userName; private Scanner scan = new Scanner(System.in); private boolean validInput = false; public void createUser(){ do { System.out.println(“Please enter you name : “); if(scan.hasNextLine()){ userName = scan.nextLine(); validInput = true; } else { System.out.println(“You can only use letters!”); validInput = false; scan.next(); } } while […]

只从输入中读取某些行?

如果我有一些代码,如input = new BufferedReader(new FileReader(args[0])); 并且输入文件包含成对的行,我怎么才能这样做,所以只导入每行的第一行? 换句话说,每个奇数行只? 谢谢

使用JUnit测试需要使用输入流模拟键盘输入的主方法?

假设我有一个带有main方法的程序,该方法使用java.util.Scanner类来接收用户输入。 import java.util.Scanner; public class Main { static int fooValue = 0; public static void main(String[] args) { System.out.println(“Please enter a valid integer value.”); fooValue = new Scanner(System.in).nextInt(); System.out.println(fooValue + 5); } } 所有这个程序都接收一个整数输入,并输出一个整数加5.这意味着我能够得到一个像这样的表: +——-+—————–+ | Input | Expected output | +——-+—————–+ | 2 | 7 | | 3 | 8 | | 5 | […]