Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2018, 10:27   #1
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию Шифр перестановки Скитала.

Народ помогите создал интерфейс к данной программе, нужно что бы при нажатии на кнопку "зашифровать"
исходный текст брался из JTextArea и уже зашифрованный код передавался в JList. Слушатель повесил на кнопку, но не получается сделать чтобы текст читался из JTextArea и зашифрованный отображался в JList.

Да и еще нужно что бы программка еще и уже зашифрованный текст расшифровывала. Кто сможет помочь или совет дать?

Мой интерфейс.
Код:
// Подключение библиотек, необходимых для создания окна и определения размеров экрана пользователя
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class ProgramScytale {
 
    JTextArea tArea;
    JList list;
    JPanel p1;
    JButton button0;
    JButton button1;
    JScrollPane scroll;
    JScrollPane scroll1;
    
    ProgramScytale(){
        
        JFrame window = new JFrame ("Шифр древней спарты");     
        p1 =new JPanel(null);
        
        tArea = new JTextArea();
        tArea.setLineWrap(true);
        tArea.setWrapStyleWord(true);
        tArea.setFont(new Font("Dialog", Font.BOLD, 15));
        
        button0 =new JButton ("ЗАШИФРОВАТЬ");
        button0.setIcon(new ImageIcon("src\\images\\icon1.jpg"));
        ActionListener actionListener = new TActionListener();
        button0.addActionListener(actionListener);
        button0.setBounds(10, 305, 195, 50);
        
        button1 =new JButton ("ДЕШИФРОВАТЬ");
        button1.setIcon(new ImageIcon("src\\images\\icon2.jpg"));
        button1.setBounds(390, 305, 195, 50);
        
        scroll = new JScrollPane(tArea);
        scroll.setBounds(10, 365, 575, 100);
        scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
 
        list =new JList();
        
        scroll1 = new JScrollPane(list);
        scroll1.setBounds(10, 225, 575, 70);
        scroll1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );
        
        window.add(p1);
        p1.add(scroll);
        p1.add(button0);
        p1.add(button1);
        p1.add(scroll1);
        
        centeringFrame(600,500,window);                         // Вызываем метод центрирования для созданного окна
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  // Завершаем программу при закрытии окна
        window.setVisible(true);                                // Делаем окно видимым
        window.setResizable(false);
        
    }
    
    private static void centeringFrame (int sizeWidth, int sizeHeight, JFrame frame){  // Метод  принимает размеры окна (ширину и высоту), а также его название
        Dimension s = Toolkit.getDefaultToolkit().getScreenSize();
        int X = (s.width - sizeWidth) / 2;
        int Y = (s.height - sizeHeight) / 2;
        frame.setBounds(X, Y, sizeWidth, sizeHeight);
    }   
    
    public class TActionListener implements ActionListener {
         public void actionPerformed(ActionEvent e) {
             
         }
    }
    
    public static void main(String[] args) {
        ProgramScytale pro = new ProgramScytale();
    }
}
И отдельно программка.
Код:
public class Cyber {
 
    public static void main(String[] args) {
        String skiTest = "Это шрифт древней Спарты";
        int cols = 0, count = 0;
        char[] skiTestArr = skiTest.replaceAll(" ", "").toCharArray();
        char[] resultArr = new char[skiTest.length()];
 
        for (int i = 1; i < skiTest.length(); i++) {
            if (skiTest.length() / i == 4) {
                cols = i;
                break;
            }
        }
        for (int i = 0; i < cols; i++) {
            int plus = i;
            for (int j = 0; j < 4; j++) {
                resultArr[count++] += skiTestArr[plus];
                plus += cols;
            }
        }
        for (char aResultArr : resultArr) {
            System.out.print(aResultArr);
        }
        System.out.println();
    }
}
ИвановБ вне форума Ответить с цитированием
Старый 18.10.2018, 14:23   #2
ИвановБ
Пользователь
 
Регистрация: 19.12.2016
Сообщений: 70
По умолчанию

Может быть не понятно поставил вопрос тогда спрошу так как вывести массив
Код:
char[] resultArr = new char[skiTest.length()];
в JList

и как считывать текст из JTextArea в массив
Код:
char[] skiTestArr = skiTest.replaceAll(" ", "").toCharArray();
ИвановБ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа "шифр перестановки" на Pascal dual-core Помощь студентам 5 25.01.2013 12:52
Перестановки Helen236 Паскаль, Turbo Pascal, PascalABC.NET 42 11.04.2012 23:22
Delphi. Мозг закипает, нид хелп! Шифр перестановки (шахматный порядок) StrikerVS Помощь студентам 1 11.05.2011 15:42
Шифр вертикальной перестановки funny Общие вопросы C/C++ 0 27.09.2008 18:59