Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 15.01.2010
Сообщений: 53

Как прикрутить графический интерфейс к программе (новичок)

23.12.2011, 15:17. Показов 1662. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Незнаю как прикрутить графический интерфес: 3 кнопки и поле ввода текста, вывода результатов. Старое меню не надо выпиливать, можно просто аргумент сделать для запуска графического меню или в консольное меню добавить пункт.... горит... завтра дать надо. Хелпуйте)

Вот программа (часть):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package laba2;
 
import laba2.task1.Task1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import laba2.task2.Task2;
import laba2.task3.Task3;
 
public class Main {
 
    public static void main(String[] args) {
        System.out.println("Введите номер задания и нажмите Enter: ");
        System.out.println("1. Задание 1");
        System.out.println("2. Задание 2");
        System.out.println("3. Задание 3");
        
        ArgsParseResult argsParseResult;
        //парсим аргументы
        argsParseResult = parseArgs(args);
        
        String stringTaskNumber = "";
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            //считываем команду
            stringTaskNumber = br.readLine();
            //пытаемся преобразовать в число
            int taskNumber = Integer.parseInt(stringTaskNumber);
            //пытаемся запустить задание
            startTasks(taskNumber, argsParseResult);
        } catch (Exception e) {
            System.err.println("Ошибка при обработке команды [" + stringTaskNumber + "]: " + e.getMessage());
        }
    }
    
    private static ArgsParseResult parseArgs(String[] args) {
        if (args.length != 6 && args.length != 8) {
            System.err.println("Неверное количество аргументов");
            throw new IllegalArgumentException();
        } else {
            int numberForTask1 = 0;
            String filePathForTask2 = null;
            int numberForTask3 = 0;
            Equality equality = null;
            
            //проходим по всем аргументам и ищем ключи
            for (int i = 0; i < args.length; i++) {
                //аргумент должен равняться "-1" и его номер должен быть четный
                //аналогично для остальных проверок
                if (args[i].equals("-1") && (i % 2) == 0) {
                    try {
                        numberForTask1 = Integer.parseInt(args[i + 1]);
                    } catch (NumberFormatException e) {
                        System.err.println("Wrong arguments");
                        throw new IllegalArgumentException();
                    }
                }
                
                if (args[i].equals("-2fp") && (i % 2) == 0) {
                    try {
                        filePathForTask2 = args[i + 1];
                    } catch (NumberFormatException e) {
                        System.err.println("Wrong arguments");
                        throw new IllegalArgumentException();
                    }
                }
 
                if (args[i].equals("-3") && (i % 2) == 0) {
                    try {
                        numberForTask3 = Integer.parseInt(args[i + 1]);
                    } catch (NumberFormatException e) {
                        System.err.println("Wrong arguments");
                        throw new IllegalArgumentException();
                    }
                }
                
                if (args[i].equals("-3sign") && (i % 2) == 0) {
                    try {
                        equality = Equality.getByString(args[i + 1]);
                    } catch (IllegalArgumentException e) {
                        System.out.println(
                                "Wrong equality!\n" +
                                "Use: \"<\", \">\", \"<=\", \">=\", \"=\"");
                    }
                }
            }
            //собираем из результатов объект
            //если путь для второго задания не был передан, то filePathForTask2 будет равен null
            //в этом случае второе задание запросит ввести предложение вручную
            return new ArgsParseResult(numberForTask1, filePathForTask2, equality, numberForTask3);
        }
    }
    
    private static void startTasks(int taskNumber, ArgsParseResult args) {
        // в зависимости от введенного номера запускаем нужное задание:
        switch (taskNumber) {
            case 1:
                Task1 task1 = new Task1();
                task1.start(args.getNumberForTask1());
                break;
            case 2:
                Task2 task2 = new Task2();
                task2.start(args.getFilePathForTask2());
                break;
            case 3:
                Task3 task3 = new Task3();
                task3.start(args.getEqualityForTask3(), args.getNumberForTask3());
                break;
            default:
                System.out.println("Неизвестный номер задания");
                break;
        }
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package laba2.task2;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
 
public class Task2 {
    
    public void start(String filePath) {
        System.out.println("Task 2 started");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            //если пути к файлу нет, то запрашиваем ввод вручную
            if (null == filePath) {
                System.out.println("Введите предложение:");
                String text = br.readLine();
                processText(text);
            } else {
                //если файл есть, то читаем его
                String text = readFile(filePath);
                processText(text);
            }
        } catch (Exception e) {
            System.err.println("Can't do 2 task: " + e.getMessage());
        }
    }
 
    private String readFile(String filePath) throws IOException {
        File file = new File(filePath);
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        StringBuilder text = new StringBuilder();
        String line;
        //читаем файл построчно
        while ((line = reader.readLine()) != null) {
            text.append(line);
        }
        return text.toString();
    }
 
    private void processText(String text) {
        SortingStatistics result = getLetterStatistics(text);
        
        //выводим результаты
        List<Character> topLetters = result.getTopLetters();
        System.out.print("Наиболее часто встречаемые символы: ");
        for (Character c : topLetters) {
            System.out.print(c + " ");
        }
        System.out.println();
        System.out.println("Количество: " + result.getCount());
    }
 
    private SortingStatistics getLetterStatistics(String text) {
    Map<Character, Integer> map = new HashMap<Character, Integer>();
    for (Character c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) {
                if (map.containsKey(c)) {
                    map.put(c, map.get(c) + 1);
                } else {
                    map.put(c, 1);
                }
            }
    }
        
        int count = 0;
    List<Character> topLetters = new ArrayList<Character>();
    for (Entry<Character, Integer> entry : map.entrySet()) {
            int value = entry.getValue();
            if (value > count) {
                topLetters.clear();
        topLetters.add(entry.getKey());
        count = value;
            } else if (value == count) {
                topLetters.add(entry.getKey());
            }
    }
        return new SortingStatistics(topLetters, count);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package laba2.task2;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
 
public class Task2 {
    
    public void start(String filePath) {
        System.out.println("Task 2 started");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            //если пути к файлу нет, то запрашиваем ввод вручную
            if (null == filePath) {
                System.out.println("Введите предложение:");
                String text = br.readLine();
                processText(text);
            } else {
                //если файл есть, то читаем его
                String text = readFile(filePath);
                processText(text);
            }
        } catch (Exception e) {
            System.err.println("Can't do 2 task: " + e.getMessage());
        }
    }
 
    private String readFile(String filePath) throws IOException {
        File file = new File(filePath);
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        StringBuilder text = new StringBuilder();
        String line;
        //читаем файл построчно
        while ((line = reader.readLine()) != null) {
            text.append(line);
        }
        return text.toString();
    }
 
    private void processText(String text) {
        SortingStatistics result = getLetterStatistics(text);
        
        //выводим результаты
        List<Character> topLetters = result.getTopLetters();
        System.out.print("Наиболее часто встречаемые символы: ");
        for (Character c : topLetters) {
            System.out.print(c + " ");
        }
        System.out.println();
        System.out.println("Количество: " + result.getCount());
    }
 
    private SortingStatistics getLetterStatistics(String text) {
    Map<Character, Integer> map = new HashMap<Character, Integer>();
    for (Character c : text.toCharArray()) {
            if (!Character.isWhitespace(c)) {
                if (map.containsKey(c)) {
                    map.put(c, map.get(c) + 1);
                } else {
                    map.put(c, 1);
                }
            }
    }
        
        int count = 0;
    List<Character> topLetters = new ArrayList<Character>();
    for (Entry<Character, Integer> entry : map.entrySet()) {
            int value = entry.getValue();
            if (value > count) {
                topLetters.clear();
        topLetters.add(entry.getKey());
        count = value;
            } else if (value == count) {
                topLetters.add(entry.getKey());
            }
    }
        return new SortingStatistics(topLetters, count);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package laba2.task3;
 
import java.util.ArrayList;
import java.util.List;
import laba2.Equality;
import laba2.NumberUtils;
 
public class Task3 {
 
    public void start(Equality equality, int number) {
        System.out.println("Task 3 started");
        //получаем список квадратов чисел
        List<Integer> numbers = NumberUtils.getSquares(30);
        //выполняем операции над списком чисел
        processNumbers(numbers, equality, number);
    }
 
    private void processNumbers(List<Integer> numbers, Equality equality, int number) {
        // Фильтруем числа
    List<Integer> filteredNumbers = filterNumbers(numbers, equality, number);
    // Выводим результаты
    System.out.println(filteredNumbers.size() > 0 ? filteredNumbers : "[No match]");
    }
    
    private static List<Integer> filterNumbers(List<Integer> numbers, Equality equality, int number) {
        List<Integer> list = new ArrayList<Integer>();
    for (int i : numbers) {
            if (equality.isEqual(i, number)) {
                list.add(i);
            }
        }
        return list;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package laba2;
//Equality - перечисление, содержит различные константы, представляющие собой знаки
public enum Equality {
    ALL {
        @Override
    public boolean isEqual(int num, int equaler) {
  //isEqual используется для получения результата этого знака с двумя числами
            return true;
        }
    },
        LESS {
        @Override
    public boolean isEqual(int num, int equaler) {
            return num < equaler;
    }
    },
    LESS_OR_EQUAL {
        @Override
    public boolean isEqual(int num, int equaler) {
            return num <= equaler;
    }
    },
    GREAT {
        @Override
        public boolean isEqual(int num, int equaler) {
            return num > equaler;
    }
    },
    GREAT_OR_EQUAL {
        @Override
    public boolean isEqual(int num, int equaler) {
            return num >= equaler;
        }
    },
    EQUAL {
        @Override
    public boolean isEqual(int num, int equaler) {
            return num == equaler;
    }
    };
 
    public abstract boolean isEqual(int num, int equaler);
//getByString используется для получения объекта этого класса, получая в параметрах строку.
    public static Equality getByString(String s) {
        if (s.length() == 1) {
            char c = s.charAt(0);
            switch (c) {
                case '<': return LESS;
        case '>': return GREAT;
        case '=': return EQUAL;
            }
    } else if (s.equals("<=")) {
            return LESS_OR_EQUAL;
    } else if (s.equals(">=")) {
            return GREAT_OR_EQUAL;
    } 
        return null;
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2011, 15:17
Ответы с готовыми решениями:

Как к программе прикрутить графический интерфейс?
Всем доброго времени суток! Мы только начали изучать Паскаль и Лазарус, но мне уже нравиться это дело :) Пока мы пишем простенькие...

Как прикрутить к файлу интерфейс
Здравствуйте, хочу спросить у вас , потому что устал искать У меня есть полностью своя написанная программа на PascalABC.Net и мне нужно...

Как прикрутить яблочный интерфейс к коду на C++?
Всем привет! У меня есть консольная прога, написанная в Xcode на С++. Мне нужно приделать к ней яблочный интерфейс. Но вот проблема - Cocoa...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2011, 15:17
Помогаю со студенческими работами здесь

Есть готовая консольная программа. Как прикрутить к ней Qt-интерфейс?
есть готовая работающая программа на c++ , как сделать чтобы данные вводились с помощью интерфейса qt , обрабатывались программой , и...

Как переделать в графический интерфейс?
Как все это связать с таблицей? что бы при ее заполнении и нажатии на кнопку, искался кратчайший пут от одной вершины в другую? ...

Графический интерфейс как в Builder
Привет! Извините, за нубский вопрос. Пишу приложение в Visual Studio 2008. Скажите, а есть ли в VS возможность создавать визуальные...

Как удалить графический интерфейс?
Здравствуйте, а в Ubuntu можно удалить граф. интерфейс ? Добавлено через 2 минуты (не могу понять как, вместо сервера скачал десктоп...

Подскажите,как написать графический интерфейс!
Подскажите,как написать интерфейс к данному шифру (вернам), пожалуйста! import java.util.Random; import java.util.Scanner; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru