Java로 사용자 입력을 얻는 방법?


317

계산기를 만들려고했지만 사용자 입력을 얻는 방법을 모르기 때문에 계산기를 작동시킬 수 없습니다 .

Java로 사용자 입력을 받으려면 어떻게해야합니까?


8
질문이 뭐예요? 방금 코드를 게시했으며 포인터가 마음에 들지 않는다고 말했습니다. 참조로 전달하고 값으로 전달하는 것을 이해하지 못하면 포인터를 이해하지 못하면 Java로 다시 물릴 수 있습니다.
Scott

4
당신은 책, 프로그램에 대한 자바 어떻게 읽는 자바를 배우려고한다, 7 / E는 좋은 하나입니다
마르코 아빌 레스

답변:


333

요구 사항에 따라 다음 옵션 중 하나를 사용할 수 있습니다.

Scanner 수업

import java.util.Scanner; 
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();

BufferedReaderInputStreamReader클래스

import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(s);

DataInputStream 수업

import java.io.DataInputStream;
DataInputStream dis = new DataInputStream(System.in);
int i = dis.readInt();

클래스 의 readLine메소드는 사용되지 않습니다 . 문자열 값을 얻으려면 BufferedReader와 함께 이전 솔루션을 사용해야합니다DataInputStream


Console 수업

import java.io.Console;
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());

분명히이 방법은 일부 IDE에서 제대로 작동하지 않습니다.


4
DataInputStream이진 데이터를 읽기위한 것 입니다. readInton을 사용 하면 문자 데이터에서 정수를 구문 분석 System.in하지 않고 대신 유니 코드 값을 해석하고 넌센스를 리턴합니다. 자세한 내용 DataInput#readIntDataInputStream구현을 참조하십시오 DataInput.
Radiodef April

3
이것은 훌륭합니다. 완벽 성을 위해 필요한 수입품을 추가하고 싶습니다. 또한 필요한 사람들에게 정말 도움이 될 것입니다.
KnightHawk

1
이 답변은 실제로 요구 사항이 무엇인지 언급하면 ​​훨씬 도움이 될 것입니다. 이 문제를 해결하기 위해 현상금을 시작했습니다.
temporary_user_name

405

가장 간단한 방법 중 하나는 Scanner다음과 같이 객체 를 사용하는 것입니다.

import java.util.Scanner;

Scanner reader = new Scanner(System.in);  // Reading from System.in
System.out.println("Enter a number: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
//once finished
reader.close();

13
System.in에 열린 스캐너 개체를 닫으면 프로그램이 완료 될 때까지 System.in을 다시 열 수 없습니다.
ksnortum

@ksnortum으로 다시 열 수 Scanner reader1 = new Scanner(System.in);있습니까?
Abhijit Jagtap

시도 해봐. 나는 그렇게 생각하지 않습니다.
ksnortum

1
예, ksnortum이 맞습니다. NoSuchElementException이 발생합니다. System.in을 닫은 후 다시 열 수없는 이유 에 대한 유용한 관련 질문 이 있습니다 .
temporary_user_name

45

스캐너 클래스 또는 콘솔 클래스를 사용할 수 있습니다

Console console = System.console();
String input = console.readLine("Enter input:");

55
이 코드가 이클립스에서 실행되면 System.console이 null을 반환한다고 생각합니다.
Win Coder

13
나는 이것이 거의 모든 IDE에서 실행되는 오류를 반환한다고 생각합니다. intelliJ에 동일한 문제가 있음을 확인했습니다.
Dan Bradbury

1
그러나 왜 이클립스에서 null입니까?
Mark W

20

을 사용하여 사용자 입력을 얻을 수 있습니다 BufferedReader.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String accStr;  

System.out.println("Enter your Account number: ");
accStr = br.readLine();

String값을 저장 accStr하므로 intusing 으로 구문 분석해야합니다 Integer.parseInt.

int accInt = Integer.parseInt(accStr);

17

키보드 입력을 얻는 방법은 다음과 같습니다.

Scanner scanner = new Scanner (System.in);
System.out.print("Enter your name");  
name = scanner.next(); // Get what the user types.

14

간단한 프로그램을 작성하여 사용자 이름을 요구하고 응답자가 입력을 사용하는 것을 인쇄 할 수 있습니다.

또는 사용자에게 두 개의 숫자를 입력하도록 요청하면 해당 숫자를 더하거나 곱하거나 빼거나 나누고 계산기 동작과 같이 사용자 입력에 대한 답변을 인쇄 할 수 있습니다.

스캐너 클래스가 필요합니다. 당신은에있는 import java.util.Scanner;및 코드에서 당신은 사용할 필요가

Scanner input = new Scanner(System.in);

입력은 변수 이름입니다.

Scanner input = new Scanner(System.in);

System.out.println("Please enter your name : ");
s = input.next(); // getting a String value

System.out.println("Please enter your age : ");
i = input.nextInt(); // getting an integer

System.out.println("Please enter your salary : ");
d = input.nextDouble(); // getting a double

방법이 다릅니다 참조 : input.next();, i = input.nextInt();,d = input.nextDouble();

String에 따르면 int와 double은 나머지 방식과 동일합니다. 코드 상단에있는 import 문을 잊지 마십시오.

블로그 게시물 "스캐너 클래스 및 사용자 입력 받기" 도 참조하십시오 .


12

가장 좋은 두 가지 옵션은 BufferedReaderScanner입니다.

가장 널리 사용되는 방법은 Scanner간단하고 쉬운 구현뿐만 아니라 텍스트를 기본 데이터로 구문 분석하는 강력한 유틸리티 때문에 개인적으로 선호합니다.

스캐너 사용의 장점

  • 사용하기 쉬운 Scanner수업
  • 쉬운 숫자 입력 (int, short, byte, float, long 및 double)
  • 더 편리한 예외는 확인되지 않습니다. 문명은 예외이며, 예외를 명시하거나 파악하는 것은 프로그래머의 몫입니다.
  • 줄, 공백 및 정규식으로 구분 된 토큰을 읽을 수 있습니다

BufferedInputStream의 장점


전반적으로 각 입력 방법은 목적이 다릅니다.

  • 많은 양의 데이터를 입력하는 BufferedReader것이 더 나을 수 있습니다

  • 많은 숫자를 입력하는 경우 Scanner자동 구문 분석이 수행 되므로 매우 편리합니다.

좀 더 기본적인 용도 Scanner로 사용하기 쉽고 프로그램을 작성하기 쉽기 때문에 권장합니다 . 다음은을 만드는 방법에 대한 간단한 예입니다 Scanner. 아래에 사용 방법에 대한 포괄적 인 예를 제공하겠습니다.Scanner

Scanner scanner = new Scanner (System.in); // create scanner
System.out.print("Enter your name");       // prompt user
name = scanner.next();                     // get user input

(에 대한 자세한 정보에 대한 BufferedReader참조 BufferedReader의 사용 방법 및 참조 char의 읽기 라인 )


java.util.Scanner

import java.util.InputMismatchException; // import the exception catching class
import java.util.Scanner; // import the scanner class

public class RunScanner {

    // main method which will run your program
    public static void main(String args[]) {

        // create your new scanner
        // Note: since scanner is opened to "System.in" closing it will close "System.in". 
        // Do not close scanner until you no longer want to use it at all.
        Scanner scanner = new Scanner(System.in);

        // PROMPT THE USER
        // Note: when using scanner it is recommended to prompt the user with "System.out.print" or "System.out.println"
        System.out.println("Please enter a number");

        // use "try" to catch invalid inputs
        try {

            // get integer with "nextInt()"
            int n = scanner.nextInt();


            System.out.println("Please enter a decimal"); // PROMPT
            // get decimal with "nextFloat()"
            float f = scanner.nextFloat();


            System.out.println("Please enter a word"); // PROMPT
            // get single word with "next()"
            String s = scanner.next();

            // ---- Note: Scanner.nextInt() does not consume a nextLine character /n 
            // ---- In order to read a new line we first need to clear the current nextLine by reading it:
            scanner.nextLine(); 
            // ----
            System.out.println("Please enter a line"); // PROMPT
            // get line with "nextLine()"
            String l = scanner.nextLine();


            // do something with the input
            System.out.println("The number entered was: " + n);
            System.out.println("The decimal entered was: " + f);
            System.out.println("The word entered was: " + s);
            System.out.println("The line entered was: " + l);


        }
        catch (InputMismatchException e) {
            System.out.println("\tInvalid input entered. Please enter the specified input");
        }

        scanner.close(); // close the scanner so it doesn't leak
    }
}

같은 다른 클래스를 참고 Console하고 DataInputStream또한 실행 가능한 대안이다.

Console암호를 읽을 수있는 기능과 같은 강력한 기능이 있지만 일부 IDE (예 : Eclipse)에서 사용할 수있는 것은 아닙니다. Eclipse가 발생하는 이유는 Eclipse가 시스템 콘솔을 사용하여 최상위 프로세스가 아닌 백그라운드 프로세스로 애플리케이션을 실행하기 때문입니다. 다음은Console 클래스 를 구현하는 방법에 대한 유용한 예에 대한 링크 입니다.

DataInputStream기본적으로 입력 스트림에서 기계 독립적 인 방식으로 입력을 기본 데이터 유형으로 읽는 데 사용됩니다. DataInputStream일반적으로 이진 데이터를 읽는 데 사용됩니다. 또한 특정 데이터 유형을 읽기위한 편리한 방법을 제공합니다. 예를 들어, UTF 문자열 안에 여러 줄을 포함 할 수있는 UTF 문자열을 읽는 방법이 있습니다.

그러나 더 복잡한 클래스이며 구현하기가 어렵 기 때문에 초보자에게는 권장되지 않습니다. 다음은 을 구현하는 유용한 예제에 대한 링크DataInputStream 입니다.


계속해서 승자에게 전화하겠습니다. 대부분의 경우 훌륭한 답변이지만, 사용하고 싶을 때 더 깊이 들어가기를 바랍니다 DataInputStream. 설명 Scanner은 프리미티브로 데이터를 읽는 사용 사례와 동일하게 들립니다 . 또한 누군가 사용자 입력을 얻는 방법을 모르는 단계에있는 경우 표준 라이브러리의 일부를 특정 IDE에서 사용할 수없는 이유를 이해하지 못할 수도 있습니다. 확실히 저의 경우입니다. 왜 Console이용할 수 없습니까?
temporary_user_name

1
더 많은 설명을 포함하도록 업데이트하려고 시도한 의견에 감사드립니다. 참조 quora.com/...을 하고 stackoverflow.com/questions/27601520/...
JFreeman

완전한. 이제 이것이 바로이 질문에 필요한 답입니다. 어떤 방법이 있다면 맨 위로 갈 수 있습니다.
temporary_user_name

글쎄, 아래로 스크롤하고자하는 사람은 좋은 답변을 얻고 천천히 올라갈 것입니다 :)
JFreeman

1
감사. 자세한 정보 답변. 추가 try-with-resource하면 더 나아질 것입니다.
Sourabh

8

여기에서 프로그램은 사용자에게 숫자를 입력하도록 요청합니다. 그 후, 프로그램은 숫자의 자릿수와 자릿수의 합계를 인쇄합니다.

import java.util.Scanner;

public class PrintNumber {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = 0;
        int sum = 0;

        System.out.println(
            "Please enter a number to show its digits");
        num = scan.nextInt();

        System.out.println(
            "Here are the digits and the sum of the digits");
        while (num > 0) {
            System.out.println("==>" + num % 10);
            sum += num % 10;
            num = num / 10;   
        }
        System.out.println("Sum is " + sum);            
    }
}

8

줄이나 문자열을 읽으려면 다음과 같이 하나 BufferedReader와 결합 된 객체를 사용할 수 있습니다 InputStreamReader.

BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String inputLine = bufferReader.readLine();

6

다음을 사용하여 질문에서 얻은 프로그램은 다음과 같습니다 java.util.Scanner.

import java.util.Scanner;

public class Example {
    public static void main(String[] args) {
        int input = 0;
        System.out.println("The super insano calculator");
        System.out.println("enter the corrosponding number:");
        Scanner reader3 = new Scanner(System.in);
        System.out.println(
            "1. Add | 2. Subtract | 3. Divide | 4. Multiply");

        input = reader3.nextInt();

        int a = 0, b = 0;

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the first number");
        // get user input for a
        a = reader.nextInt();

        Scanner reader1 = new Scanner(System.in);
        System.out.println("Enter the scend number");
        // get user input for b
        b = reader1.nextInt();

        switch (input){
            case 1:  System.out.println(a + " + " + b + " = " + add(a, b));
                     break;
            case 2:  System.out.println(a + " - " + b + " = " + subtract(a, b));
                     break;
            case 3:  System.out.println(a + " / " + b + " = " + divide(a, b));
                     break;
            case 4:  System.out.println(a + " * " + b + " = " + multiply(a, b));
                     break;
            default: System.out.println("your input is invalid!");
                     break;
        }
    }

    static int      add(int lhs, int rhs) { return lhs + rhs; }
    static int subtract(int lhs, int rhs) { return lhs - rhs; }
    static int   divide(int lhs, int rhs) { return lhs / rhs; }
    static int multiply(int lhs, int rhs) { return lhs * rhs; }
}

3
너무 많은 Scanner객체 를 만들 필요는 없습니다 . 하나면 충분했을 것입니다.
jub0bs

5

System입력을 얻으려면 클래스를 사용하십시오 .

http://fresh2refresh.com/java-tutorial/java-input-output/ :

키보드에서 데이터를 어떻게 받아들입니까?

세 가지 물체가 필요합니다

  1. System.in
  2. InputStreamReader
  3. BufferedReader

    • InputStreamReader 및 BufferedReader는 java.io 패키지의 클래스입니다.
    • 데이터는 InputStream 객체 인 System.in에 의해 키보드로부터 바이트 형태로 수신됩니다.
    • 그런 다음 InputStreamReader는 바이트를 읽고 문자로 디코딩합니다.
    • 그런 다음 BufferedReader 객체는 문자 입력 스트림에서 텍스트를 읽고 문자를 버퍼링하여 문자, 배열 및 행을 효율적으로 읽을 수 있도록합니다.
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);

1
System.in(첫 번째 코드 행에서) S클래스 이름의 대문자 를 갖습니다 .
KNU

5
스캐너 입력 = 새 스캐너 (System.in);
정수 정수 = 입력 .nextInt ();
문자열 string = input.next ();
long longInteger = input.nextLong ();

5

하나의 추가 세부 사항입니다. 메모리 / 리소스 유출의 위험을 감수하지 않으려면 완료되면 스캐너 스트림을 닫아야합니다.

myScanner.close();

Java 1.7 이상에서는 이것을 컴파일 경고로 잡습니다 (내가 어떻게 알지 묻지 마십시오 :-)


그러나 스캐너가 System.in에 열려 있으면 아닙니다 . 프로그램에서 Scanner to System.in을 다시 열 수 없습니다.
ksnortum

4
Scanner input = new Scanner(System.in);
String inputval = input.next();

4
import java.util.Scanner; 

class Daytwo{
    public static void main(String[] args){
        System.out.println("HelloWorld");

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the number ");

        int n = reader.nextInt();
        System.out.println("You entered " + n);

    }
}

4

다음은 두 가지 일반적인 요구를 해결하는보다 정답 화 된 답변입니다.

  • 종료 값이 입력 될 때까지 사용자 입력을 반복적으로 수집
  • 유효하지 않은 입력 값 다루기 (이 예제에서는 정수가 아님)

암호

package inputTest;

import java.util.Scanner;
import java.util.InputMismatchException;

public class InputTest {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);
        System.out.println("Please enter integers. Type 0 to exit.");

        boolean done = false;
        while (!done) {
            System.out.print("Enter an integer: ");
            try {
                int n = reader.nextInt();
                if (n == 0) {
                    done = true;
                }
                else {
                    // do something with the input
                    System.out.println("\tThe number entered was: " + n);
                }
            }
            catch (InputMismatchException e) {
                System.out.println("\tInvalid input type (must be an integer)");
                reader.nextLine();  // Clear invalid input from scanner buffer.
            }
        }
        System.out.println("Exiting...");
        reader.close();
    }
}

Please enter integers. Type 0 to exit.
Enter an integer: 12
    The number entered was: 12
Enter an integer: -56
    The number entered was: -56
Enter an integer: 4.2
    Invalid input type (must be an integer)
Enter an integer: but i hate integers
    Invalid input type (must be an integer)
Enter an integer: 3
    The number entered was: 3
Enter an integer: 0
Exiting...

이 없으면 nextLine()잘못된 입력은 무한 루프에서 동일한 예외를 반복적으로 트리거합니다. next()상황에 따라 대신 사용하고 싶을 수도 있지만, 이와 같은 입력으로 this has spaces인해 여러 예외가 발생 한다는 것을 알고 있습니다.


3

throws IOExceptionmain()에 추가 한 다음

DataInputStream input = new DataInputStream(System.in);
System.out.print("Enter your name");
String name = input.readLine();

3

Java로 입력하는 것은 매우 간단합니다.

import java.util.Scanner;

class GetInputFromUser
{
    public static void main(String args[])
    {
        int a;
        float b;
        String s;

        Scanner in = new Scanner(System.in);

        System.out.println("Enter a string");
        s = in.nextLine();
        System.out.println("You entered string " + s);

        System.out.println("Enter an integer");
        a = in.nextInt();
        System.out.println("You entered integer " + a);

        System.out.println("Enter a float");
        b = in.nextFloat();
        System.out.println("You entered float " + b);
    }
}

그건 같은거야. 당신은 언제나 데이터 타입 변수 varName [] OR 데이터 타입 [] 변수 varName으로 배열을 초기화 할 수 있습니다
user2277872

3
import java.util.Scanner;

public class Myapplication{
     public static void main(String[] args){
         Scanner in = new Scanner(System.in);
         int a;
         System.out.println("enter:");
         a = in.nextInt();
         System.out.println("Number is= " + a);
     }
}

2

BufferedReader를 사용하여 이와 같은 사용자 입력을 얻을 수 있습니다.

    InputStreamReader inp = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(inp);
    // you will need to import these things.

이것이 당신이 그들을 적용하는 방법입니다

    String name = br.readline(); 

따라서 사용자가 콘솔에 자신의 이름을 입력하면 "문자열 이름"에 해당 정보가 저장됩니다.

저장하려는 숫자 인 경우 코드는 다음과 같습니다.

    int x = Integer.parseInt(br.readLine());

도와주세요!


2

이렇게 될 수 있습니다 ...

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    System.out.println("Enter a number: ");
    int i = reader.nextInt();
    for (int j = 0; j < i; j++)
        System.out.println("I love java");
}

1

이것은 System.in.read()함수 를 사용하는 간단한 코드입니다 . 이 코드는 입력 한 내용을 작성합니다. 입력을 한 번만 받으려면 while 루프를 제거 할 수 있으며 원하는 경우 문자 배열에 응답을 저장할 수 있습니다.

package main;

import java.io.IOException;

public class Root 
{   
    public static void main(String[] args)
    {
        new Root();
    }

    public Root()
    {
        while(true)
        {
            try
            {
                for(int y = 0; y < System.in.available(); ++y)
                { 
                    System.out.print((char)System.in.read()); 
                }
            }
            catch(IOException ex)
            {
                ex.printStackTrace(System.out);
                break;
            }
        }
    }   
}    

1

나는 다음을 좋아한다 :

public String readLine(String tPromptString) {
    byte[] tBuffer = new byte[256];
    int tPos = 0;
    System.out.print(tPromptString);

    while(true) {
        byte tNextByte = readByte();
        if(tNextByte == 10) {
            return new String(tBuffer, 0, tPos);
        }

        if(tNextByte != 13) {
            tBuffer[tPos] = tNextByte;
            ++tPos;
        }
    }
}

예를 들어, 나는 할 것입니다 :

String name = this.readLine("What is your name?")

1
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("Welcome to the best program in the world! ");
        while (true) {
            System.out.print("Enter a query: ");
            Scanner scan = new Scanner(System.in);
            String s = scan.nextLine();
            if (s.equals("q")) {
                System.out.println("The program is ending now ....");
                break;
            } else  {
                System.out.println("The program is running...");
            }
        }
    }
}

0

를 사용하여 사용자 입력을 얻을 수 있습니다 Scanner. next()for String또는 nextInt()for 와 같은 다양한 데이터 유형에 적합한 방법을 사용하여 올바른 입력 유효성 검사를 사용할 수 있습니다 Integer.

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);

//reads the input until it reaches the space
System.out.println("Enter a string: ");
String str = scanner.next();
System.out.println("str = " + str);

//reads until the end of line
String aLine = scanner.nextLine();

//reads the integer
System.out.println("Enter an integer num: ");
int num = scanner.nextInt();
System.out.println("num = " + num);

//reads the double value
System.out.println("Enter a double: ");
double aDouble = scanner.nextDouble();
System.out.println("double = " + aDouble);


//reads the float value, long value, boolean value, byte and short
double aFloat = scanner.nextFloat();
long aLong = scanner.nextLong();
boolean aBoolean = scanner.nextBoolean();
byte aByte = scanner.nextByte();
short aShort = scanner.nextShort();

scanner.close();

0

사용자 입력을 얻는 가장 간단한 방법은 스캐너를 사용하는 것입니다. 사용 방법의 예는 다음과 같습니다.

import java.util.Scanner;
public class main {
public static void main(String[]args) {
Scanner sc=new Scanner(System.in);
int a;
String b;
System.out.println("Type an integer here: ");
a=sc.nextInt();
System.out.println("Type anything here:");
b=sc.nextLine();

코드 줄은 import java.util.Scanner;프로그램에서 프로그래머가 코드에서 사용자 입력을 사용할 것임을 알려줍니다. 말하는 것처럼 스캐너 유틸리티를 가져옵니다. Scanner sc=new Scanner(System.in);프로그램이 사용자 입력을 시작하도록 지시합니다. 그런 다음 값이없는 문자열 또는 정수를 만든 다음 a=sc.nextInt();또는 행에 입력해야합니다 a=sc.nextLine();. 변수에 사용자 입력 값을 제공합니다. 그런 다음 코드에서 사용할 수 있습니다. 도움이 되었기를 바랍니다.


-1
import java.util.Scanner;

public class userinput {
    public static void main(String[] args) {        
        Scanner input = new Scanner(System.in);

        System.out.print("Name : ");
        String name = input.next();
        System.out.print("Last Name : ");
        String lname = input.next();
        System.out.print("Age : ");
        byte age = input.nextByte();

        System.out.println(" " );
        System.out.println(" " );

        System.out.println("Firt Name: " + name);
        System.out.println("Last Name: " + lname);
        System.out.println("      Age: " + age);
    }
}

-1
class ex1 {    
    public static void main(String args[]){
        int a, b, c;
        a = Integer.parseInt(args[0]);
        b = Integer.parseInt(args[1]);
        c = a + b;
        System.out.println("c = " + c);
    }
}
// Output  
javac ex1.java
java ex1 10 20 
c = 30

args해당 배열의 길이를 먼저 확인하지 않고 요소에 액세스하기위한 제재 : downvote.
jub0bs


-1

다른 사람이 게시 한 것처럼 스캐너를 사용한 키보드 입력이 가능합니다. 그러나 그래픽이 매우 높은시기에 그래픽 사용자 인터페이스 (GUI)가없는 계산기를 만드는 것은 의미가 없습니다.

현대 Java에서 이것은 Scene Builder 와 같은 JavaFX 드래그 앤 드롭 도구를 사용한다는 것을 의미합니다. 하여 계산기 콘솔과 유사한 GUI를 배치하는 것을 의미합니다. Scene Builder를 사용하는 것은 직관적으로 쉬우 며 이미 보유하고있는 이벤트 핸들러에 대한 추가 Java 기술이 필요하지 않습니다.

사용자 입력의 경우 GUI 콘솔 상단에 넓은 TextField가 있어야합니다.

사용자가 기능을 수행 할 번호를 입력하는 곳입니다. TextField 아래에는 기본 (즉, 더하기 / 빼기 / 곱하기 / 나누기 및 메모리 / 호출 / 삭제) 기능을 수행하는 기능 버튼 배열이 있습니다. GUI가 밝혀지면 각 버튼 기능을 Java 구현에 연결하는 '컨트롤러'참조를 추가 할 수 있습니다 (예 : 프로젝트의 컨트롤러 클래스에서 메소드 호출).

이 비디오 는 약간 오래되었지만 여전히 Scene Builder를 사용하는 방법을 보여줍니다.


이 답변은 내려지지 않았습니다. 이유가 없습니다. 나에게 그것은 Java 애플리케이션에 사용자 입력을 얻는 유일하게 사용할 수있는 방법입니다.
트렁크

이것은 매우 유용하며, 왜 투표가 중단되었는지 알 수 없습니다. 그러나 현재 답변과 현상금 설명은 콘솔을 통해 입력을 얻고 자하는 미래의 사용자를위한 답변을 찾고 있음을 나타냅니다.
JFreeman

이전 버전의 Java로 작성된 코드가 붙어 있지 않은 Java 사용자는 스캐너 키보드 입력에 사용되지 않습니다. 지난번에 현상금 묶은 게시물에 답하고 있습니다. . .
트렁크

귀하의 불만을 완전히 이해합니다. 나는 개인적으로 귀하의 답변이 매우 유용하다고 생각하므로 왜 투표가 거부되었는지 이해할 수 없습니다. 그러나 GUI가없는 프로그램을 작성하는 경우가 많으므로 적절한 코드 Scanner가 사용 가능하다고 생각합니다.
JFreeman

OP가 화면 I / O가 최소이거나없는 오버 헤드가 적은 (임베디드 된) 프로세스라고 말하면 충분합니다. 스캐너가 필요합니다. 그러나 그들은 그런 말을하지 않았다. OP는 본질적으로이 "사용자 입력"이라는 문구가 주로 키보드 입력을 제안 하거나 그렇지 않은 경우 자신을 위해 문구를 해석하도록 초대 했음을 수락 하도록 요청했습니다. . .
트렁크
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.