С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 27.03.2014
Сообщений: 52

Переделка из консольного приложения в графическое

14.09.2015, 10:29. Показов 1685. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане!

поставил перед собой задачу - переделать свои консольное приложения в графический вариант.
Одно приложение переделал с подсказками форума и ютуба, второе с лёгкостью переделал на подобии уже сделанного и взялся за последнее приложение, но оно не много не такое как предыдущие и у меня начали возникать проблемы...но некоторые наработки имеются...
Приложение состоит из двух файлов классов (честно говоря так понимаю что можно и из одного было сделать, но в туториале в ютубе для практики делали из двух, потом этот проект и взял за основу) , и так первый файл называется headLB1 второй называется newGUILB1

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import javax.swing.JFrame;
 
public class headLB1 {
 
    public static void main(String[] args) {
        newGUILB1 r = new newGUILB1("Нумерация букв алфавита"); //Называем шапку
        r.setVisible(true);//Делаем видимой форму
        r.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Правильное закрытие формы
        r.setSize(300, 200);//Размер
        r.setResizable(false);//Запрет изменения размера
        r.setLocationRelativeTo(null);//Появляется в центре
    }
}
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
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
 
 
import javax.swing.*;
public class newGUILB1 extends JFrame {
    /** В русском тексте каждую букву заменить ее номером в алфавите. 
     * В одной строке печатать текст с двумя пробелами между буквами, 
     * в следующей строке внизу под каждой буквой печатать ее номер.*/
    private static final long serialVersionUID = 1L;
    JButton b1, b2;//Кнопка b1, b2
    JLabel l1, l2, l3, l4;//Надпись l1, l2
    JTextField t1;//Поле ввода текста
    eHandler handler = new eHandler();//Новый класс для отлова ошибки
    public newGUILB1(String s) {
        super(s);
        setLayout(new FlowLayout());//Создаем лайаут
        b1 = new JButton("Очистить");//Кнопка "Очистить"
        b2 = new JButton("Проверить");//Кнопка "Посчитать"
        l1 = new JLabel("Введите буквы ");//Надпись "Введите комбинацию чисел"
        l2 = new JLabel("");//Пустая надпись для вывода текста
        l3 = new JLabel("");//Пустая надпись для вывода введёных символов
        l4 = new JLabel("");//Пустая надпись для вывода цифры номера буквы
        t1 = new JTextField(20);//Поле ввода
        add(b1);//Добавляем кнопку b1
        add(b2);//Добавляем кнопку b2
        add(l1);//Добавляем надпись l1
        add(t1);//Добавляем поле ввода t1
        add(l2);//Добавляем надпись l2
        add(l3);//Добавляем надпись l3
        add(l4);//Добавляем надпись l4
        b2.addActionListener(handler);//Задаем действие кнопке b1
        b1.addActionListener(handler);//Задаем действие кнопке b2
    }
    public class eHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            
                if (e.getSource() == b2) { //Если нажимают кнопку b2
                    String line = t1.getText();//Считываем данные с поля ввода
                    for (int i = 0; i < line.length(); i++) { //Цикл для вывода текста
                    
                    
                    
                
                    
                    l2.setText("Нумерация букв  ");//выводим в надпись l2 текст + результат
                    //l3.getToolTipText();
                    //l4.setText(text);
                }
                if (e.getSource() == b1) {//если нажата кнопка b1
                    t1.setText(null);//Обнуляем поле ввода
                    l2.setText(null);//Обнуляем надпись
                    l3.setText(null);//Обнуляем надпись
                    l4.setText(null);//Обнуляем надпись
                }
            
        }
    }
}}
Добавлено через 40 секунд
код консольного выглядит так
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
import java.util.Scanner;
 
public class LB1 {
    public static void main(String[] args) {
        System.out.print("Введите текст: "); //Пригашение ввести текст
        @SuppressWarnings("resource")
        Scanner s = new Scanner(System.in); //создаем сканер s
        String str = s.nextLine(); //Считываем текст
        int c = 0; //Объявляем переменную c для хранения кода символа
        for (int i = 0; i < str.length(); i++) { //Цикл для вывода текста
            System.out.print(str.charAt(i)); //Выводим каждую букву текста
            System.out.print("  "); //Делаем два пробела
        }
        System.out.println(); //Переходим на следующую строку
        for (int i = 0; i < str.length(); i++) { //Начинаем цикл для вывода кода символов
            c = str.codePointAt(i);     //Записываем в "c" код символа
            if (c > 1103 & c != 1025 & c != 1105 & c != 32 || c < 1040 & c != 1025
                    & c != 1105 & c != 32) {//Если это не русская раскладка, не пробел
                System.out.print("?  "); //Тогда пишем знак "?  " 
            }
            if (c == 32) { //Если пробел
                System.out.print("   "); //Пишем "  "
            } else if (c >= 1072 & c <= 1103 || c == 1105) {//Иначе если Русский алфавит маленькие буквы или если "ё"
                if (c == 1105) { //Если "ё"
                    System.out.print("7  "); //Пишем "7  "
                } else if (c - 1071 >= 7) { //Если после буквы "ё"
                    if (c - 1071 >= 9) {//Тогда если двузначная цифра
                        System.out.print(c - 1071 + 1 + " ");//Пишем двузначную цифру и один пробел (Прибавляем +1 к коду символа из-за ё)
                    } else //Иначе
                        System.out.print(c - 1071 + 1 + "  ");//Пишем однозначную цифру и два пробела (Прибавляем +1 к коду символа из-за ё)
                
                } else//Иначе
                    System.out.print(c - 1071 + "  ");//Пишем цифру и два пробела
            } else if (c >= 1040 & c <= 1071 || c == 1025) {//Иначе если алфавит русский большие буквы или если "Ё"
                if (c == 1025) {//Если "Ё"
                    System.out.print("7  ");//Пишем "7  "
                } else if (c - 1039 >= 7) {//Иначе если после буквы "Ё"
                    if (c - 1039 >= 9) {//Тогда если двузначная цифра
                        System.out.print(c - 1039 + 1 + " ");//Пишем двузначную цифру и один пробел (Прибавляем +1 к коду символа из-за Ё)
                    } else//Иначе
                        System.out.print(c - 1039 + 1 + "  ");//Пишем однозначную цифру и два пробела (Прибавляем +1 к коду символа из-за Ё)
                }  else//Иначе
                    System.out.print(c - 1039 + "  ");//Выводим код и два пробела
                if (c == 32) { //Если пробел
                    System.out.print("   "); //Тогда выводим два пробела
                }
                
            }
 
        }
    }
}
Добавлено через 1 минуту
то что код далеко не оптимизирован это понятно, но работает как нужно...к стати условие задачи которую должно выполнять приложение звучит так : "В русском тексте каждую букву заменить ее номером в алфавите. В одной строке печатать текст с двумя пробелами между буквами, в следующей строке внизу под каждой буквой печатать ее номер."

Добавлено через 7 минут
не получается следующее - не могу в l3 отправить весь введёный текст через пробел, ну смысл в том что бы ввести любые комбинации букв (с пробелом или нет) и потом в l3 вывести их все через пробел (там где был пробел поставить два пробела- ну запустите консольное поймёте о чём я) ... далее по моей задумке (может быть есть другая реализация?) в l4 передать код буквы и разместить l4 строго под l3 что бы цифры были под буквами и причем что бы они не сьезжали там сделано так что бы если однозначное число тогда после цифры идёт два пробел, если двузначное число - тогда идет один пробел ...и если вводить символы не относящиеся к русскому алфавиту выходят знаки вопроса...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2015, 10:29
Ответы с готовыми решениями:

Тестирование консольного java-приложения
Всем привет! Ситуация такая: есть клиент-серверное java-приложение (виртуальная файловая система). Клиент - консольное приложение,...

Запуск консольного приложения exe из кода
Доброе время товарищи. Перерыл весь Stack Overflow и не нашел ничего подходящего. Необходимо запустить exe приложение из кода. Но дело в...

Запуск консольного приложения java в Mac Os по клику
Есть простое консольное приложение. Скомпилировал, скачал jre для WIN, LINUX, MAC OS. Написал простой файлик .bat для запуска в WIN и...

1
 Аватар для иван я
17 / 17 / 16
Регистрация: 15.12.2012
Сообщений: 536
14.09.2015, 13:25
Пинок Под Зад, Пихай этот код в процедуру кнопки, удали сканер и все что связано с ним, на форму поставь текстовое поле, в процедуре обработки нажатия на кнопку считай текст из этого текстового поля (jTextArea.getText()); и вместо System.out.println(); выводи в jTextArea вот так jTextArea.append(); если нужен перенос на другую строку то вот так выводи jTextArea.append(""+"\n\r"); и все должно работать при нажатии на кнопку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2015, 13:25
Помогаю со студенческими работами здесь

Использование консольного приложения с интерфейсом командной строки
Всем доброго времени суток Задача состоит из 3 пунктов. 1. Разработать класс &quot;треугольник&quot; для работы с треугольником,...

Создание простого консольного ООП-приложения любой тематики
Всем привет, нужна помощь в создании простого консольного приложения. Вот несколько условий: 1. Использовать возможности ООП: классы,...

Простенькое графическое меню для консольного приложения DOS
помогите реализовать простенькое графическое меню для консольного приложения DOS

Проект консольного приложения из Windows приложения
привет всем. В чем может быть ошибка? 1&gt;MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в...

Запуск консольного приложения из другого приложения
Я понимаю, что мой вопрос уже разжеван. Однако точного ответа я пока на него не нашел. У меня есть некоторое приложение. Я хочу по...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru