Опубликован: 27.09.2006 | Уровень: для всех | Доступ: свободно | ВУЗ: Московский государственный индустриальный университет
Лекция 2:

Основы языка Java

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

Реализация класса Xterm

Эта секция содержит для справки программную реализацию класса Xterm, который мы будем активно использовать всю первую половину нашего курса.

import java.io.*;

// Класс, обеспечивающий вывод строк текста с возможностью
// позиционирования и использования цветов, а также ввод чисел
// целых типов int и long и вещественных float и double.
public class Xterm {
    
    private static final DataInputStream in =
        new DataInputStream(System.in);
    private static final int MAXLEN = 255;
    private static String inputString() throws IOException {
        byte buf[] = new byte[MAXLEN];
        int i = in.read(buf);
        return new String(buf,0,i-1);
    }
    
    // Имена цветов символов и фона
    public static final int Black   = 0;
    public static final int Red     = 1;
    public static final int Green   = 2;
    public static final int Yellow  = 3;
    public static final int Blue    = 4;
    public static final int Magenta = 5;
    public static final int Cyan    = 6;
    public static final int White   = 7;
    
    // Метод очистки экрана
    public static void clear() {
        System.out.print("\033[2J");
    }	

    // Метод позиционирования курсора
    public static void setPosition(int x, int y) {
        System.out.print("\033[" + (y+1) + ";" + (x+1) + "H");
    }

    // Методы вывода строки
    public static void print(String txt) {
        System.out.print("\033[0m\033[30;1m"+txt+"\033[0m\033[30m");
    }
    public static void print(String txt, int fg) {
        System.out.print("\033[0m\033[" + (30+fg)
                           +";1m" + txt + "\033[0m\033[30m");
    }
    public static void print(String txt, int fg, int bg) {
        System.out.print("\033[0m\033["+(bg==7?"":""+(40+bg)+";")+
                         (30+fg)+";1m" + txt + "\033[0m\033[30m");
    }

    public static void println(String txt) {
        print(txt + "\n");
    }
    public static void println(String txt, int fg) {
        print(txt + "\n");
    }
    public static void println(String txt, int fg, int bg) {
        print(txt + "\n");
    }

    // Методы ввода чисел типов int, long, float, double
    public static int inputInt() throws IOException,
        NumberFormatException {
        return Integer.valueOf(inputString()).intValue();
    }
    public static int inputInt(String prompt) throws IOException,	
        NumberFormatException {	
        print(prompt); return inputInt();
    }

    public static long inputLong() throws IOException,
        NumberFormatException {
        return Long.valueOf(inputString()).longValue();
    }
    public static long inputLong(String prompt) throws IOException,
        NumberFormatException {
        print(prompt); return inputLong();
    }

    public static float inputFloat() throws IOException,
        NumberFormatException {
        return Float.valueOf(inputString()).floatValue();
    }
    public static float inputFloat(String prompt) throws IOException,
        NumberFormatException {
        print(prompt); return inputFloat();
    }

    public static double inputDouble() throws IOException,
        NumberFormatException {
        return Double.valueOf(inputString()).doubleValue();
    }
    public static double inputDouble(String prompt)
        throws IOException, NumberFormatException {
        print(prompt); return inputDouble();
    }
    // Методы ввода строки, рассматриваемой как массив символов.
    public static char[] inputChars() throws IOException {
        return (inputString()).toCharArray();
    }
    public static char[] inputChars(String prompt)
        throws IOException {
        print(prompt);
        return (inputString()).toCharArray();
    }
}
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева