⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui.java

📁 playfair加密简单实现 生成密钥矩阵,加密解密
💻 JAVA
字号:
package playFair;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import playFair.Matrix;
import playFair.Alogrithm;

class GUI extends JPanel{
	JButton keyButton,deButton,enButton;
	JTextField [][] mxText = new JTextField [5][5];
	char [][] tmp;
	JTextArea text ;
	JTextField keyText;
	String key;
	GUI(){
		
		setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
		
		JPanel keyPane = new JPanel(new BorderLayout());
		JLabel keyLabel = new JLabel("keyword", JLabel.CENTER);
        keyLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
		keyText= new JTextField();
		keyButton = new JButton("CreateMatrix");
		keyButton.addActionListener(new createActionAdapter());
		keyButton.setEnabled(true);
		keyPane.add(keyLabel,BorderLayout.LINE_START);
		keyPane.add(keyText);
		keyPane.add(keyButton,BorderLayout.LINE_END);
		keyPane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
		
		JPanel matrixPane = new JPanel(new GridLayout(5,5));
		for(int i=0;i<5;i++){
			for(int j=0;j<5;j++){
			mxText[i][j] =new JTextField();
			mxText[i][j].setEditable(false);
			mxText[i][j].setForeground(Color.blue);
			matrixPane.add(mxText[i][j]);
			}
		}
		matrixPane.setBorder(
	            BorderFactory.createTitledBorder("Key-Matrix"));
		
		JPanel buttonPane = new JPanel(new GridLayout(2,0));
        deButton = new JButton("ENCRYPTION");
        deButton.addActionListener(new enActionAdapter());
        deButton.setEnabled(false);
        enButton = new JButton("DECRYPTION");
        enButton.addActionListener(new deActionAdapter());
        enButton.setEnabled(false);
        buttonPane.add(deButton);
        buttonPane.add(enButton);
        
        JLabel textLabel = new JLabel("Text", JLabel.CENTER);
        textLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
        text = new JTextArea();
        text.setSize(500,500);    
        
        JPanel EditPane = new JPanel(new BorderLayout());
        EditPane.add(textLabel,BorderLayout.WEST);
        EditPane.add(new JScrollPane(text));
        EditPane.add(buttonPane,BorderLayout.EAST);
        EditPane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
      
        add(keyPane);
        add(matrixPane, BorderLayout.NORTH);
        add(EditPane,BorderLayout.SOUTH);
        setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
	}
	public static void main(String args[]){
		JFrame frame = new JFrame("PlayFair Cryption");
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}	
		});
		GUI playFair= new GUI();
		
		frame.add(playFair, BorderLayout.NORTH);
		frame.setSize(400,300);
        //Display the window.
        
		frame.setVisible(true);
		
	}
	class createActionAdapter implements ActionListener
	{
		public void actionPerformed(ActionEvent e) {
			key=keyText.getText();
			Matrix mx = new Matrix(key);
			tmp=mx.getMatrix();
			for(int i=0;i<tmp.length;i++)
	         {
	            for(int j=0;j<tmp[i].length;j++)
	            {
	               if(tmp[i][j]=='i')
	                   mxText[i][j].setText("i/q");
	               else
	                   mxText[i][j].setText(String.valueOf(tmp[i][j]));
	            }
	         }
			enButton.setEnabled(true);
			deButton.setEnabled(true);
		}
	}
	class deActionAdapter implements ActionListener
		{

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				String info=text.getText();
				Alogrithm p=new Alogrithm(info,tmp);
				p.changeText();
				p.Decryption();
				text.setText(p.getPlaintext());
	         
	        
			}                                         
		}
		
	class enActionAdapter implements ActionListener
	{

		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
	  		String info=text.getText();
	        Alogrithm p=new Alogrithm(info,tmp);
	        p.changeText();
	        p.Encryption();
	        text.setText(p.getCiphertext());
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -