Как прикрутить графический интерфейс к программе (новичок)
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
|