Tag: 输入

并发/非阻塞控制台键盘输入

我正在研究java中的MUD。 我每次打勾都会看到播放器输入,但我正在使用使用阻塞操作的Scanner 。 我想要非阻塞输入。 我查看了具有Selector类的nio包,但我不确定如何在System.in方面使用它。 我想我在运行服务器时肯定需要它,但现在一切都是离线的。 我已经尝试从Applet扩展主类并重写keyDown ,但这只是意味着在第一个之后不再接受输入。 当然,我不再阻止任何东西了,但是没有更多的输入。 我想, keyDown再也没有被调用过。 也许线程即使在执行阻塞操作时也可能被中断? 感谢您对此问题的任何见解。

Sublime Text 2中的Java控制台输入?

我最近切换到了sublime text 2,但我似乎无法找到任何插件/资源,这将允许我在编辑器中实现java控制台输入。 我已经设法使它编译并执行java文件,但每当我的代码需要任何输入(如扫描仪输入)时,代码不会编译,我收到错误。 我已经看到了为python实现这一目标的解决方案,但是却无法在Java上找到任何东西。

Java从MIDI键盘获取输入

我在java中设计了自己的合成器,现在我想用midi键盘连接它。 我的下面的课程搜索所有具有发射器的midi设备。 它成功找到了我的midi键盘。 我为每个设备添加了自己的接收器到每个发射器,以便它可以拾取所有可能的东西。 通过阅读所有帮助文档和java文档,我知道发送器将MidiEvents发送到接收器,接收器然后使用send方法处理它们。 所以我编写了自己的实现Receiver的内部类,并且只使用了println语句来检查send方法中是否有任何检测到的内容。 但是根本没有任何东西被拿走。 做这么简单的事似乎没什么帮助,我看了每个帮助文件,javadoc和论坛。 我敢肯定它一定是非常明显我不知何故错过的东西。 我的合成器不应该与接口合成器混淆,它不是midi乐器。 它使用合成算法并具有回放方法。 基本上我只需要让midi键盘发送一个关于事件的注释,它将调用回放方法。 import javax.sound.midi.*; import java.util.ArrayList; import java.util.List; import java.io.*; public class MidiHandler { //ArrayList of MidiDevices private ArrayList devices = new ArrayList(); public MidiHandler() { MidiDevice device; MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); for (int i = 0; i 0) { //if it does, add it […]

扫描仪输入接受字符串跳过while循环内的所有其他输入。

好吧,所以代码很简单。 通用类ourSet,它接受一些元素,将它放在LinkedList中,并在两个集合上执行一些函数。 我的问题实际上与项目的一般概念完全无关,它更多地出现在我创建的“用户输入界面”中。 我希望它接受一些字符串并将其添加到集合中,然后在接收字符串“EXIT”(全部大写)时退出循环,并为下一个集合执行相同操作。 发生的事情是do while循环只发送所有奇数的第1,第3,第5 …… package set.pkgclass; import java.util.Scanner; import java.util.LinkedList; public class SetClass { public static void main(String[] args) { ourSet set1 = new ourSet(); ourSet set2 = new ourSet(); Scanner input = new Scanner(System.in); System.out.println(“Please enter a string to put in set 1, ” + “type EXIT (in all caps) to […]

StdRandom,StdOut,Insertion无法解析

此代码应实现排序。 我有3个错误: “StdRandom无法解决”, “StdOut无法解决”, “插入无法解决”。 可能有一些库要导入? public class randomDoubles { public static void main(String[] args) { int N = Integer.parseInt(args[0]); Double[] a = new Double[N]; for(int i = 0; i < N; i++) a[i] = StdRandom.uniform(); // error: StdRandom cannot be resolved Insertion.sort(a); // error: Insertion cannot be resolved for (int i = 0; i […]

如何从Java中读取用户的输入并将其写入文件

我想创建一个简单的独立应用程序,它将从用户(一些数字和数学函数f(x,y …))获取一些输入并将它们写入文件。 然后在这个文件的帮助下,我将运行一个命令。 我需要的基本成分: – 用于用户输入的JTextArea。 – ButtonHandler / ActionListener并将输入写入(txt)文件 – ButtonHandler / ActionLister执行命令 最好的方法是什么? 我拥有的当前运行代码(基本上是一个玩具) – 它不会写任何东西,只执行 – 是: import java.applet.*; import java.lang.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.Dialog; import java.io.IOException; import java.io.InputStream; import java.io.*; import java.util.*; import java.io.BufferedWriter; public class Runcommand3 { public static void main(String[] args) throws FileNotFoundException, IOException { […]

如何坚持用户输入是一个int?

这里的基本问题..我将首先要求你不要回复任何代码,因为这可能只会让我更加困惑(编程菜鸟)。 我正在寻找一个关于如何解决这个问题的明确解释。 我有一个扫描仪,可以读取用户的输入。 提示用户输入1到150之间的int值(仅限整数)。 我获得如下值: Scanner scan = new Scanner(System.in); int input = scan.nextInt(); 继续我的程序,一切正常。 不幸的是,代码并不完全是防弹的,因为任何非整数的输入都可以破坏它(字母,符号等)。 如何使代码更健壮,哪里可以validation只输入了一个int? 这些是我希望的结果: 让我们说输入是: 23 -> valid fx -> display an error message, ask the user for input again (a while loop would do..) 7w -> error, again 3.7 -> error $$ -> error etc

如何确保Scanner hasNextInt()要求新输入?

新程序员在这里。 这可能是一个非常基本的问题,但它仍然让我感到困惑。 我正在尝试做的是编写一个只提供一个整数输入的方法,这样我就可以在主程序中使用该输入,而不必使用非整数输入。 然而,即使用自己的方法编写方法也是有问题的。 public static int goodInput () { Scanner input = new Scanner (System.in); //construct scanner boolean test = input.hasNextInt(); //set a sentinel value while (test == false) { //enter a loop until I actually get an integer System.out.println(“Integers only please”); //tell user to give me an integer test = input.hasNextInt(); //get new […]

Java:使用GridLayout输入矩阵

我正在尝试编写一个可以使用GridLayout输入任意大小的矩阵的函数,但是因为我找不到一个合适的方法来提取JTextField值来填充’mat’var(参见下面的FIXME) 。 /** * @mat: matrix declared in main (eg: mat[][] = new int[3][3];) * @rows: number of matrix rows (eg: int rows = 3;) * @columns: number of matrix columns (eg: int columns = 3;) */ public static int[][] inputMatrix(int[][] mat, int rows, int columns) { JPanel panel = new JPanel(); panel.setLayout(new GridLayout(rows,columns)); for […]

Java中的命令行管道输入

这是一段简单的代码: import java.io.*; public class Read { public static void main(String[] args) { BufferedReader f = new BufferedReader(new InputStreamReader(System.in)); while(true) { String x = null; try{ x = f.readLine(); } catch (IOException e) {e.printStackTrace();} System.out.println(x); } } } 我执行此操作:java读取<input.txt 一旦input.txt被完全传送到程序中,x就会不断获得无限空值。 为什么? 在将文件送入代码之后,有没有办法使标准输入(命令行)生效? 我试过关闭流并重新打开,它不起作用。 重置等也。