在GUI界面中接收用户输入(通过扫描仪)

时间:2016-03-02 20:21:47

标签: java user-interface input java.util.scanner

我正在使用我发现的以下代码在界面而不是consol中显示结果。

  public class Main{
    public static void main( String [] args ) throws InterruptedException  {
        JFrame frame = new JFrame();
        frame.add( new JLabel(" Outout" ), BorderLayout.NORTH );

        JTextArea ta = new JTextArea();
        TextAreaOutputStream taos = new TextAreaOutputStream( ta, 60 );
        PrintStream ps = new PrintStream( taos );
        System.setOut( ps );
        System.setErr( ps );


        frame.add( new JScrollPane( ta )  );

        frame.pack();
        frame.setVisible( true );

        for( int i = 0 ; i < 100 ; i++ ) {
            System.out.println( i );
            Thread.sleep( 500 );
        }
    }
}

但是在我的程序中的某个步骤,我需要接收用户输入。在consol程序可以工作,但在界面上它似乎没有将输入发送到我的程序。

顺便说一句,我正在使用我程序的这部分代码来接收用户输入:

Scanner input = new Scanner(System.in); 
String data = input.nextLine();

我的问题是如何让GUI界面接受用户输入而不仅仅显示结果/错误?

1 个答案:

答案 0 :(得分:1)

用户Swing JTextPane用于平面文字输入或JEditorPane更多可达输入。

在此处查看一些好的示例(按启动按钮进行真实演示) https://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html