0

Output Image

After user enter Status and enter how can i make everything on the top disappear and just show whatever's below that. I do want the inputs to be visible anymore. How can i implement this? Can someone help me fix my code, I previously tried a system out flush but it did not work. Thank you very much.

package com.company;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        ArrayList<Car> cars = new ArrayList<>();
        int choice;
        Car car = new Car();
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("\n1 - Insert car\n2 - Edit car\n3 - Exit");
            System.out.println("Enter your choice: ");
            choice = scanner.nextInt();
            switch (choice){
                case 1:
                    car = new Car();
                    scanner = new Scanner(System.in);
                    System.out.println("Enter Plate number: ");
                    car.setPlateNumber(scanner.nextLine());
                    System.out.println("Enter Brand: ");
                    car.setBrand(scanner.nextLine());
                    System.out.println("Enter Model: ");
                    car.setModel(scanner.nextLine());
                    System.out.println("Enter type: ");
                    car.setType(scanner.nextLine());
                    System.out.println("Enter Color: ");
                    car.setColour(scanner.nextLine());
                    System.out.println("Enter Price: ");
                    car.setPrice(scanner.nextDouble());
                    scanner = new Scanner(System.in);
                    System.out.println("Enter Status: ");
                    car.setStatus(scanner.nextLine());
                    cars.add(car);
                    System.out.println("\nCar saved successfully!!");
                    break;
                case 2:
                    car = new Car();
                    scanner = new Scanner(System.in);
                    System.out.println("Enter car Plate Number: ");
                    car.setPlateNumber(scanner.nextLine());
                    if(!car.editCarRecord(cars))
                        System.out.println("Car not found!!");
                    break;
                case 3:
                    return;
                default:
                    System.out.println("Invalid option!!");
            }
        }

    }
}


package com.company;

import java.util.ArrayList;
import java.util.Scanner;

public class Car {
    private String plateNumber;
    private String brand;
    private String model;
    private String type;
    private String colour;
    private String status;
    private double price;

    public Car() {
        // Define this if we want default values
    }

    public Car(String pn, String br, String mo, String ty, String co, String st, double pr) {
        plateNumber = pn;
        brand = br;
        model = mo;
        type = ty;
        colour = co;
        status = st;
        price = pr;
    }

    public void setPlateNumber(String pn) {
        plateNumber = pn;
    }

    public void setBrand(String br) {
        brand = br;
    }

    public void setModel(String mo) {
        model = mo;
    }

    public void setType(String ty) {
        type = ty;
    }

    public void setColour(String co) {
        colour = co;
    }

    public void setStatus(String st) {
        status = st;
    }

    public void setPrice(double pr) {
        price = pr;
    }

    public String getPlateNumber() {
        return plateNumber;
    }

    public String getBrand() {
        return brand;
    }

    public String getModel() {
        return model;
    }

    public String getType() {
        return type;
    }

    public String getColour() {
        return colour;
    }

    public String getStatus() {
        return status;
    }

    public double getPrice() {
        return price;
    }

    public boolean editCarRecord(ArrayList<Car> list){
        Scanner scanner = new Scanner(System.in);
        int choice;
        for(int i=0; i<list.size(); i++) {
            if (list.get(i).getPlateNumber().compareToIgnoreCase(this.getPlateNumber()) == 0) {
                System.out.println("Car record matched!!");
                System.out.println(list.get(i).toString());
                while(true) {
                    System.out.println("1 - Edit Status\n2 - Edit Price\n3 - Edit Color\n4 - Back to main menu");
                    System.out.println("Enter your choice: ");
                    choice = scanner.nextInt();
                    if (choice == 1) {
                        System.out.println("Enter new Status: ");
                        list.get(i).setStatus(scanner.nextLine());
                        System.out.println("Status updated Successfully!");
                    } else if (choice == 2) {
                        System.out.println("Enter new Price: ");
                        list.get(i).setPrice(scanner.nextDouble());
                        System.out.println("Price updated Successfully!");
                    } else if (choice == 3) {
                        System.out.println("Enter new Color: ");
                        list.get(i).setColour(scanner.nextLine());
                        System.out.println("Color updated Successfully!");
                    } else if (choice == 4) {
                        return true;
                    } else {
                        System.out.println("Invalid choice!!");
                    }
                }
            }
        }
        return false;
    }

    public String toString() {
        return "Plate number: " + plateNumber
                + "\nBrand: " + brand
                + "\nModel: " + model
                + "\nType: " + type
                + "\nColour: " + colour
                + "\nStatus: " + status
                + "\nPrice: " + price;
    }
}
  • 1
    IIRC it's dependent on the terminal. There are some for which it's just not possible. What terminal are you using? – Michael Jun 07 '21 at 13:49
  • the easiest way, print a hundred empty lines. But really "clearing" a terminal .. – Stultuske Jun 07 '21 at 13:50
  • 1
    Possibly related: [Java: Clear the console](https://stackoverflow.com/q/2979383) – Pshemo Jun 07 '21 at 13:54
  • I'm using IntelliJ IDEA Michael –  Jun 07 '21 at 14:06
  • 3
    IntelliJ IDEA is an IDE and not a command line. It has its own console but try running your application without the ide, i.e. directly from command line (like `java -jar path/to/your/jar-file`). – Thomas Jun 07 '21 at 14:26

0 Answers0