加密与解密原理の一例
package lockunlock;
インポート Java.awt.*;
インポート java.awt.event.*;
インポート java.Applet.*;
インポート javax.Swing.*;
インポート java.util.*;
public class LockUnlock extends JApplet {
private boolean isStandalone = false;
//パラメータ値を取得する
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//アプレットを構築する
public LockUnlock() {
}
//アプレットを初期化する
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//コンポーネントの初期化
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jLabel1.setText("文字列");
jLabel1.setBounds(new Rectangle(35, 36, 57, 21));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
jLabel2.setText("文字列の長さ");
jLabel2.setBounds(new Rectangle(29, 73, 69, 22));
jTextField1.setText("");
jTextField1.setBounds(new Rectangle(108, 40, 166, 17));
jTextField2.setText("");
jTextField2.setBounds(new Rectangle(107, 72, 56, 21));
jButton1.setBounds(new Rectangle(30, 236, 137, 27));
jButton1.setText("演習 3");
jButton1.addActionListener(new LockUnlock_jButton1_actionAdapter(this));
jButton2.setBounds(new Rectangle(218, 237, 131, 27));
jButton2.setText("演習 4");
jButton2.addActionListener(new LockUnlock_jButton2_actionAdapter(this));
jTextField3.setText("");
jTextField3.setBounds(new Rectangle(106, 105, 58, 21));
jLabel3.setText("モシュ");
jLabel3.setBounds(new Rectangle(36, 106, 86, 18));
contentPane.add(jLabel1, null);
contentPane.add(jButton2, null);
contentPane.add(jButton1, null);
contentPane.add(jLabel3, null);
contentPane.add(jTextField2, null);
contentPane.add(jLabel2, null);
contentPane.add(jTextField3, null);
contentPane.add(jTextField1, null);
}
//アプレット情報の取得
public String getAppletInfo() {
return "アプレット情報";
}
//パラメータ情報の取得
public String[][] getParameterInfo() {
return null;
}
//Main メソッド
public static void main(String[] args) {
LockUnlock アプレット = new LockUnlock();
applet.isStandalone = true;
JFrame フレーム = 新しい JFrame();
//EXIT_ON_CLOSE == 3
frame.setDefaultCloseOperation(3);
frame.setTitle("アプレットフレーム");
frame.getContentPane().add(アプレット, BorderLayout.CENTER);
アプレット.init();
applet.start();
frame.setSize(400,320);
寸法 d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
//ルック&フィールを設定するための静的初期化子
static {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch(例外 e) {
}
}
//DataMember
int インデックスを宣言します
//------------------------------------- --- ----------------
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JTextField jTextField2 = new JTextField();
JTextField jTextField1 = 新しい JButton();
JButton jButton();
JLabel jLabel3 = 新しい JLabel();
//- --- ------------------N!-------------------------- --
public int function(int N){
if(N==1)
return 1;
else{
return N*function(N-1)
/*not RETURN function(N-1);ただし N*function(N-1);*/
}
}
//----------再帰を使用して文字列の完全な配置を見つけます---------- -- ---------
public void Arrange(String prefix,String suffix,int[] Array){
int numOfChars =suffix.length();
if(numOfChars== 1); {
Array[index]=Integer.parseInt(prefix+suffix);
}
else{
for(int i=1; inewSuffix=suffix.substring(1 ,numOfChars) );
newPrefix=prefix+suffix.charAt(0);
Arrange(newPrefix,newSuffix+suffix.charAt(0);
}
}
//--- -- -----最小値から最大値への配置---------------------
/*public void RankForArrange(int[] Array){
intbottom=Array .length -1 ;
int temp;
for(int i=bottom;i>0;i--){
if(Array[j]>Array[ j+1]){
temp =配列[j];
配列[j+1]=temp
}
}
}
*/
/ /-----------------照準番号を見つける-----------
public int FindAim( int 目的,int[] 配列){
ブール isFound=false;
int length=Array.length;
for(int i=0;i
場所=true;
}
if(isFound)
場所を返す
/ ※ifで返してもいいんじゃないでしょうか?*/
}
//------文字列の作成---------------------- ---------
public String CreatString(int length){
StringBuffer BufString=new StringBuffer();
for(int i=1;i<=length;i++){
BufString.append(i) ;
}
return BufString.toString();
}
//-----------OutPut Result----------------------
public void OutPutResult1(){
index = 0; //0 にクリア
String AimString、プレフィックス;
AimString = jTextField1.getText();
int 長さ = AimString.length();
文字列 strLength = 文字列.valueOf(長さ);
int Aim = Integer.parseInt(AimString);
/* 方法.parseInt才是转换はint型
而不是.getInteger*/
int[] EachArrange = new int[this.function(Length)];
jTextField2.setText(strLength);
接頭語 = 「」; //空の文字列を作成します
if (AimString.length() > 2 &&
AimString.length() < 9 && AimString != "") {
Arrange(prefix, AimString, EachArrange);
//RankForArrange(EachArrange);
Arrays.sort(EachArrange);
String result = String.valueOf(FindAim(Aim, EachArrange));
jTextField3.setText(結果);
}
else {
System.out.println("文字列が短すぎます");
}
}
//----------出力 結果 2---------------------
public void OutPutRestlt2(){
index=0;//インデックスを0に戻します
String strLength, strMoShu,
AimString, prefix,suffix;
int 長さ、 MoShu、制限;
strLength = jTextField2.getText();
strMoShu = jTextField3.getText();
長さ = Integer.parseInt(strLength);
MoShu = Integer.parseInt(strMoShu);
limit = 関数(長さ);
int[] EachArrange = new int[this.function(Length)];
if (長さ > 2&&長さstrLength!=""&&strMoShu!=""
&&MoShu
suffix =CreatString(長さ);
Arrange(プレフィックス、サフィックス、EachArrange);
Arrays.sort(EachArrange);
String strResult=String.valueOf(EachArrange[MoShu]);
jTextField1.setText(strResult);
}
else
System.out.println("Input Ouf MoShu, Try again") ;
}
void jButton1_actionPerformed(ActionEvent e) {
this.OutPutResult1();
}
void jButton2_actionPerformed(ActionEvent e) {
this.OutPutRestlt2();
}
//-------------------------------------------- --------------
}
class LockUnlock_jButton1_actionAdapter implements java.awt.event.ActionListener {
LockUnlock adaptee;
LockUnlock_jButton1_actionAdapter(LockUnlock adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class LockUnlock_jButton2_actionAdapter implements java.awt.event.ActionListener {
LockUnlock adaptee;
LockUnlock_jButton2_actionAdapter(LockUnlock adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}