📄 gui.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 + -