Tangentbordsinmatning

När programmet vill att användaren matar in uppgifter via tangentbordet stannar programmet på ett ställe under exekveringen och inväntar data. Användaren matar in de aktuella uppgifterna, dessa hämtas av programmet och exekveringen fortsätter. Man måste då förklara för användaren vilka uppgifter som ska matas in, och i vilken ordning. Programmet bör därför skriva ut ett lämpligt meddelande varje gång data ska matas in, till exempel:

System.out.print("Vad heter du?");

När användaren skriver sitt namn och trycker på returtangenten på tangentbordet så har användare signalerat till programmet att inmatningen är färdig. Då hämtar programmet det användaren har skrivit och fortsätter att exekvera koder i programmet.

När data matas in via tangentbordet kan man korrigera inmatningen så länge man inte har tryckt på returtangenten. För att undvika fel inmatningar bör anges lämpliga instruktioner exempelvis frågan ”vad heter du? ” kan svaras med för- och efternamn eller bara förnamnet. Om programmet förväntar sig att få enbart förnamnet för man set till att skriva koder som enbart hämtar förnamnet. När en inmatning sker hämtas data och lagras i inmatningsbuffert och därifrån kan hämtas förnamnet.

Scanner

Klassen Scanner finns deklarerad i ett standardpaket som heter java.util.Scanner. När man importerar klassen Scanner så skriver högst upp i en rad:

import java.util.Scanner;

eller

import java.util.*

Då får man alla klasser som ingår i paketet.

Säg att i ett program ska sparas användarens inmatningen i en variabel av typ sträng:

String namn;

Vi frågar användaren sitt namn:

System.out.print("Vad heter du i förnamn?");

För att hämta inmatningen skapar vi ett Scanner objekt:

Scanner input = new Scanner(System.in);
namn = input.nextLine();

Dialogrutor

JOptionPane är en klass som används för att tillhandahålla grafiska dialogrutor. Det är en del av Java Swing som används för att skapa fönsterbaserade applikationer. Dialogrutorna kan vara av vilken typ som helst, t.ex. bekräftelsedialogruta, meddelandedialogruta eller inmatningsdialogruta. Dessa dialogrutor kan användas för att visa information för användaren eller för att få input från användaren.

Klassen JOptionPane kan användas på olika sätt tillsammans med så kallade metoder:

  • showInputDialog – Be användaren anger en viss input
  • showMessageDialog – Visar ett meddelande för användaren i dialogrutan
  • showOptionDialog – En kombination av ovan nämna metoder

Exempel:

// En dialogruta som ber en viss input och ett annat för att visa ett meddelande:
import javax.swing.JOptionPane;

public class Dialogrutor {
  public static void main(String[] args){
    String namn;
    String meddelande;
    namn = JOptionPane.showInputDialog("Vad heter du?");
    meddelande = "Välkommen " + name;
    JOptionPane.showMessageDialog(null, meddelande);
  }
}