Java'da kullanıcı girişi nasıl alınır?


317

Bir hesap makinesi oluşturmaya çalıştım, ancak çalışamıyorum çünkü kullanıcı girdisini nasıl alacağımı bilmiyorum .

Java'da kullanıcı girişini nasıl alabilirim?


8
Sorunuz ne? Biraz kod gönderdiniz ve işaretçilerden hoşlanmadığınızı söylediniz. Eğer referans ile geçmeyi ve değere göre geçmeyi anlamadıysanız, işaretçileri anlamama hala sizi java'da ısırmaya gelebilir.
Scott

4
java bir kitap okuma öğrenmeye çalışmalısınız, Java Nasıl Programlanır, 7 / e güzel bir
Marco Aviles

Yanıtlar:


333

Gereksinimlere göre aşağıdaki seçeneklerden herhangi birini kullanabilirsiniz.

Scanner sınıf

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

BufferedReaderve InputStreamReadersınıflar

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 sınıf

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

readLine, Yöntem DataInputStreamsınıfı olmuştur kaldırıldı . String değerini almak için, BufferedReader ile önceki çözümü kullanmalısınız


Console sınıf

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

Görünüşe göre, bu yöntem bazı IDE'lerde iyi çalışmıyor.


4
Not DataInputStreamikili veri okuma içindir. Kullanılması readIntüzerinde System.inyok değil karakter verilerinden bir tamsayı ayrıştırmak, bunun yerine Unicode değerleri ve dönüş saçma yeniden yorumlayacaktır. Ayrıntılar DataInput#readIntiçin bakınız ( DataInputStreamuygular DataInput).
Radiodef

3
bu harika, tamlık için gerekli ithalatı görmek isterdim. Ayrıca ihtiyacı olanlara da gerçekten yardımcı olur.
KnightHawk

1
Gereksinimlerin gerçekte ne olduğunu belirtmişse bu cevap çok daha yararlı olacaktır. Bunu düzeltmeye çalışmak için bir ödül kazandım.
temporary_user_name

405

En basit yollardan biri, bir Scannernesneyi aşağıdaki gibi kullanmaktır :

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'e açılan bir Tarayıcı nesnesini kapatırsanız, program bitene kadar System.in dosyasını yeniden açamazsınız.
ksnortum

@ksnortum yeniden açabilir miyim Scanner reader1 = new Scanner(System.in);?
Abhijit Jagtap

Dene. Ben öyle düşünmüyorum.
ksnortum

1
Evet, ksnortum haklı, NoSuchElementException alıyorsunuz. System.in'i kapattıktan sonra neden yeniden açamayacağınızla ilgili yararlı bir soru .
temporary_user_name

45

Sen kullanabilirsiniz Tarayıcı sınıfını veya Konsol sınıfı

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

55
Bu kod tutulma çalışırsa System.console null döneceğini düşünüyorum.
Win Coder

13
Bunun hemen hemen her IDE'den çalışan bir hata döndüreceğine inanıyorum. intelliJ'in de aynı sorunu yaşadığını doğruladı.
Dan Bradbury

1
ama bu tutulmada neden null?
Mark W

20

Düğmesini kullanarak kullanıcı girişi alabilirsiniz BufferedReader.

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

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

Bir Stringdeğeri saklar , accStrböylece onu intkullanarak ayrıştırmanız gerekir Integer.parseInt.

int accInt = Integer.parseInt(accStr);

17

Klavye girişlerini şu şekilde alabilirsiniz:

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

14

Kullanıcının adını soracak basit bir program oluşturabilir ve yanıtın girişleri kullandığı her şeyi yazdırabilirsiniz.

Veya kullanıcıdan iki sayı girmesini isteyin ve bu sayıları toplayabilir, çarpabilir, çıkarabilir veya bölebilir ve kullanıcı girişlerinin yanıtlarını tıpkı bir hesap makinesinin davranışı gibi yazdırabilirsiniz.

Yani Tarayıcı sınıfına ihtiyacınız var. Kullanmanız gereken import java.util.Scanner;kodda ve kodda

Scanner input = new Scanner(System.in);

Girdi değişken bir isimdir.

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

Bu nasıl farklılık bakınız: input.next();, i = input.nextInt();,d = input.nextDouble();

Bir String'e göre int ve double, geri kalanı için aynı şekilde değişir. Kodunuzun üst kısmındaki içe aktarma ifadesini unutmayın.

Ayrıca "Tarayıcı sınıfı ve Kullanıcı Girdilerinin Alınması" adlı blog gönderisine bakın .


12

En iyi iki seçenek BufferedReaderve Scanner.

En yaygın kullanılan yöntem Scannerve ben basitlik ve kolay uygulama yanı sıra, ilkel verilere metin ayrıştırmak için güçlü yarar nedeniyle şahsen tercih ederim.

Tarayıcı Kullanmanın Avantajları

  • ScannerSınıfı kullanımı kolay
  • Kolay sayı girişi (int, kısa, byte, float, uzun ve çift)
  • İstisnalar işaretsizdir ve bu daha uygundur. Uygar olmak ve istisnaları belirlemek veya yakalamak programcıya bağlıdır.
  • Çizgileri, beyaz boşlukları ve normal ifade ile sınırlandırılmış simgeleri okuyabilir

BufferedInputStream'in Avantajları


Genel olarak her bir giriş yönteminin farklı amaçları vardır.

  • Büyük miktarda veri giriyorsanız sizin BufferedReaderiçin daha iyi olabilir

  • Çok sayıda sayı Scannergiriyorsanız, çok uygun olan otomatik ayrıştırma yapar

Daha temel kullanımlar için tavsiye ederim Scannerçünkü kullanımı daha kolay ve programları yazmak daha kolaydır. İşte nasıl oluşturulacağına hızlı bir örnek Scanner. Aşağıda nasıl kullanılacağına dair kapsamlı bir örnek vereceğimScanner

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

(Hakkında daha fazla bilgi için BufferedReaderSee bir BufferedReader nasıl kullanılır ve bakın Chars okunması hatları )


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
    }
}

Not: Consoleve gibi diğer sınıflar DataInputStreamda uygulanabilir alternatiflerdir.

Consoleşifreleri okuma gibi bazı güçlü özelliklere sahiptir, ancak tüm IDE'lerde (Eclipse gibi) kullanılamaz. Bunun nedeni Eclipse uygulamanızı bir sistem konsolu ile üst düzey bir işlem olarak değil, bir arka plan işlemi olarak çalıştırmasıdır. İşteConsole sınıfın nasıl uygulanacağına dair faydalı bir örnek için bir bağlantı .

DataInputStreamöncelikle, girdiyi makineden bağımsız bir şekilde temel bir giriş akışından ilkel bir veri tipi olarak okumak için kullanılır. DataInputStreamgenellikle ikili verileri okumak için kullanılır. Ayrıca belirli veri türlerini okumak için kolaylık yöntemleri sağlar. Örneğin, içinde herhangi bir sayıda satır içerebilen bir UTF Dizesini okumak için bir yöntemi vardır.

Bununla birlikte, daha karmaşık bir sınıftır ve yeni başlayanlar için önerilmez, bu nedenle uygulanması daha zordur. İşte a DataInputStream.


Devam edip kazananı arayacağım. Çoğunlukla harika bir cevap, ne zaman kullanmak istediğimde daha derinlere inmesini isterdim DataInputStream- buradaki açıklama, kullanım durumu ile aynı geliyor Scanner: ilkellere veri okumak. Ayrıca, bir kullanıcı kullanıcı girdisini nasıl alacağını bilmiyorsa, büyük olasılıkla standart kütüphanenin bazı bölümlerinin belirli IDE'lerde neden kullanılamayacağını da anlamıyorlar. Kesinlikle benim için durum buydu - neden Consolekullanılamıyor?
temporary_user_name

1
Geri bildiriminiz için teşekkür ederiz. Daha fazla açıklama eklemek için güncellemeye çalıştım. Bkz. Quora.com/… ve stackoverflow.com/questions/27601520/…
JFreeman

Mükemmel. Şimdi bu sorunun tam olarak ihtiyaç duyduğu cevap bu. Keşke bir yol olsaydı, onu en üste alabilirdim.
temporary_user_name

Peki, aşağı kaydırmak isteyen herkes iyi bir cevap alacak ve yavaşça yukarı gidecek :)
JFreeman

1
Teşekkürler. Detaylı bilgilendirici cevap. Eklemek try-with-resourcedaha iyi olur.
Sourabh

8

Burada program kullanıcıdan bir sayı girmesini ister. Bundan sonra, program sayının rakamlarını ve rakamların toplamını yazdırır.

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

Bir satırı veya dizeyi okumak için, bir BufferedReadernesneyle birleştirilmiş bir nesneyi InputStreamReaderaşağıdaki gibi kullanabilirsiniz:

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

6

İşte sorudan programınızı kullanarak 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
Çok fazla Scannernesne yaratmaya gerek yok ; biri yeterli olurdu.
jub0bs

5

SystemGirdiyi almak için sınıfı kullanın .

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

Veriler klavyeden nasıl kabul edilir?

Üç nesneye ihtiyacımız var,

  1. System.in
  2. InputStreamReader
  3. BufferedReader

    • InputStreamReader ve BufferedReader, java.io paketindeki sınıflardır.
    • Veriler, bir InputStream nesnesi olan System.in tarafından klavyeden bayt biçiminde alınır.
    • Sonra InputStreamReader baytları okur ve bunları karakterlere çözer.
    • Sonra nihayetinde BufferedReader nesnesi, karakterlerin, dizilerin ve satırların verimli okunmasını sağlamak için karakterleri arabelleğe alan bir karakter giriş akışından metin okur.
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);

1
System.in(int ilk kod satırı) Ssınıf adı için sermayeye sahip olacaktır .
KNU

5
Tarayıcı girişi = yeni Tarayıcı (System.in);
int tamsayı = input.nextInt ();
String string = input.next ();
long longInteger = input.nextLong ();

5

Ekstra bir ayrıntı. Bellek / kaynak sızıntısı riskini almak istemiyorsanız, işiniz bittiğinde tarayıcı akışını kapatmalısınız:

myScanner.close();

Java 1.7 ve daha sonra bunu derleme uyarısı olarak yakaladığını unutmayın (bunu nasıl bildiğimi sorma :-)


Ancak Tarayıcı System.in'e açıksa değil . Programınızda Tarayıcı'yı tekrar System.in dosyasına açamazsınız.
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

Kabul edilen cevabın iki ortak ihtiyacı ele alan daha gelişmiş bir versiyonu:

  • Bir çıkış değeri girilene kadar kullanıcı girişini tekrar tekrar toplama
  • Geçersiz giriş değerleriyle ilgilenme (bu örnekte tamsayı olmayanlar)

kod

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();
    }
}

Misal

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...

Olmadan nextLine(), kötü girişin sonsuz bir döngüde aynı istisnayı tekrar tekrar tetikleyeceğini unutmayın . Bunun next()yerine duruma bağlı olarak kullanmak isteyebilirsiniz , ancak bunun gibi girdilerin this has spacesbirden fazla istisna oluşturacağını bilin .


3

throws IOExceptionYanına ekle main(), sonra

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

3

Java'ya giriş yapmak çok basit, tek yapmanız gereken:

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);
    }
}

aynı şey. Daima datatype varName [] OR datatype []
varName

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

Bir BufferedReader kullanarak aşağıdaki gibi kullanıcı girişi alabilirsiniz:

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

Onları böyle uygularsınız

    String name = br.readline(); 

Kullanıcı konsolda ismini yazdığında "String name" bu bilgiyi saklayacaktır.

Saklamak istediğiniz bir numaraysa, kod şöyle görünecektir:

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

Bu yardımcı olur!


2

Böyle bir şey olabilir ...

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

Bu, System.in.read()işlevi kullanan basit bir koddur . Bu kod sadece yazılanları yazar. Sadece bir kez giriş almak istiyorsanız while döngüsünden kurtulabilir ve isterseniz bir karakter dizisinde cevapları saklayabilirsiniz.

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

Aşağıdaki gibi:

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;
        }
    }
}

ve örneğin, yapardım:

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

Düğmesini kullanarak kullanıcı girişini alabilirsiniz Scanner. next()For Stringveya nextInt()for gibi farklı veri türleri için uygun yöntemleri kullanarak doğru giriş doğrulamasını kullanabilirsiniz 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

Kullanıcı girişi almanın en basit yolu Tarayıcı kullanmaktır. İşte nasıl kullanılması gerektiğine bir örnek:

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();

Kod satırı import java.util.Scanner;, programa programcının kodlarında kullanıcı girişlerini kullanacağını söyler. Dediği gibi, tarayıcı yardımcı programını içe aktarır. Scanner sc=new Scanner(System.in);Programa kullanıcı girişlerini başlatmasını söyler. Bunu yaptıktan sonra, değeri olmayan bir dize veya tamsayı oluşturmanız ve bunları satırına a=sc.nextInt();veya satırına koymanız gerekir a=sc.nextLine();. Bu, değişkenlere kullanıcı girişlerinin değerini verir. Sonra kodunuzda kullanabilirsiniz. Bu yardımcı olur umarım.


-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Önce o dizinin uzunluğunu kontrol etmeden öğelere erişim yaptırımı : aşağı oy.
jub0bs


-1

Diğerleri gibi Tarayıcı'yı kullanarak klavye girişi mümkündür. Ancak bu son derece grafik zamanlarda, grafik kullanıcı arayüzü (GUI) olmadan bir hesap makinesi yapmak anlamsızdır.

Modern Java'da bu, hesap makinesinin konsoluna benzeyen bir GUI düzenlemek için Scene Builder gibi bir JavaFX sürükle ve bırak aracı kullanmak anlamına gelir . Scene Builder'ı kullanmak sezgisel olarak kolaydır ve olay işleyicileri için zaten sahip olabileceğiniz ek Java becerisi gerektirmez.

Kullanıcı girişi için, GUI konsolunun üstünde geniş bir TextField dosyanız olmalıdır.

Bu, kullanıcının işlevlerini yerine getirmek istediği sayıları girdiği yerdir. TextField öğesinin altında, temel (yani toplama / çıkarma / çarpma / bölme ve bellek / geri çağırma / silme) işlevlerini yerine getiren bir dizi işlev düğmesi bulunur. GUI kullanıma sunulduktan sonra, her düğme işlevini Java uygulamasına bağlayan 'denetleyici' referanslarını ekleyebilirsiniz; örneğin, projenizin denetleyici sınıfındaki bir yönteme çağrı.

Bu video biraz eski ama yine de Scene Builder'ın ne kadar kolay kullanıldığını gösteriyor.


Bu cevap reddedildi - sebep gösterilmedi. Bana göre, bir Java uygulamasına kullanıcı girişi almanın tek kullanılabilir yolu budur.
Gövde

Bu çok faydalı ve neden aşağı oy verildiğini anlamıyorum. Bununla birlikte, mevcut cevaplar ve ödül ifadesi, bir konsol aracılığıyla girdi elde etmek isteyen gelecekteki kullanıcılar için bir cevap aradıklarını ima eder.
JFreeman

Herhangi bir Java kullanıcısı görmüyorum - Java'nın eski sürümlerinde yazılan kodlarla sıkışmış olanları - Tarayıcı klavye girişi için herhangi bir kullanımı olan görmüyorum. En son ne zaman ödüllü bir gönderiyi cevaplıyorum. . .
Gövde

Şikayetinizi tamamen anlıyorum. Şahsen cevabınızın çok faydalı olduğuna inanıyorum, bu yüzden neden aşağı oy kullanıldığını anlamıyorum. Ancak, pek çok kez GUI olmayan programlar yazılı var ve bu yüzden bir uygun kodun Scannerolması çok iyi olduğuna inanıyorum .
JFreeman

OP, ekran G / Ç'sinin minimum veya hiç olmadığı düşük maliyetli (gömülü?) Bir işlem olduğunu söylediğinde, yeterince adil - Tarayıcı ihtiyaç duydukları şeydir. Ama böyle bir şey söylemediler. OP esasen ya bu “kullanıcı girişi” ifadesinin, öncelikle klavye girişi önerdiğini kabul etmemizi istedi ya da başka bir deyişle, ifadeyi kendimiz için yorumlamaya davet etti. . .
Gövde
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.