¡¡¡¡¼ÓÃÜÓë½âÃÜÔÀíµÄÒ»¸öÀý×Ó
¡¡¡¡package lockunlock;
¡¡¡¡import Java.awt.*;
¡¡¡¡import java.awt.event.*;
¡¡¡¡import java.Applet.*;
¡¡¡¡import javax.Swing.*;
¡¡¡¡import java.util.*;
¡¡¡¡public class LockUnlock extends JApplet {
¡¡¡¡private boolean isStandalone = false;
¡¡¡¡//Get a parameter value
¡¡¡¡public String getParameter(String key, String def) {
¡¡¡¡return isStandalone ? System.getProperty(key, def) :
¡¡¡¡(getParameter(key) != null ? getParameter(key) : def);
¡¡¡¡}
¡¡¡¡//Construct the applet
¡¡¡¡public LockUnlock() {
¡¡¡¡}
¡¡¡¡//Initialize the applet
¡¡¡¡public void init() {
¡¡¡¡try {
¡¡¡¡jbInit();
¡¡¡¡}
¡¡¡¡catch(Exception e) {
¡¡¡¡e.printStackTrace();
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//Component initialization
¡¡¡¡private void jbInit() throws Exception {
¡¡¡¡contentPane = (JPanel) this.getContentPane();
¡¡¡¡jLabel1.setText("String");
¡¡¡¡jLabel1.setBounds(new Rectangle(35, 36, 57, 21));
¡¡¡¡contentPane.setLayout(null);
¡¡¡¡this.setSize(new Dimension(400, 300));
¡¡¡¡jLabel2.setText("String length");
¡¡¡¡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("Exercise 3");
¡¡¡¡jButton1.addActionListener(new LockUnlock_jButton1_actionAdapter(this));
¡¡¡¡jButton2.setBounds(new Rectangle(218, 237, 131, 27));
¡¡¡¡jButton2.setText("Exercise 4");
¡¡¡¡jButton2.addActionListener(new LockUnlock_jButton2_actionAdapter(this));
¡¡¡¡jTextField3.setText("");
¡¡¡¡jTextField3.setBounds(new Rectangle(106, 105, 58, 21));
¡¡¡¡jLabel3.setText("MoShu");
¡¡¡¡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);
¡¡¡¡}
¡¡¡¡//Get Applet information
¡¡¡¡public String getAppletInfo() {
¡¡¡¡return "Applet Information";
¡¡¡¡}
¡¡¡¡//Get parameter info
¡¡¡¡public String[][] getParameterInfo() {
¡¡¡¡return null;
¡¡¡¡}
¡¡¡¡//Main method
¡¡¡¡public static void main(String[] args) {
¡¡¡¡LockUnlock applet = new LockUnlock();
¡¡¡¡applet.isStandalone = true;
¡¡¡¡JFrame frame = new JFrame();
¡¡¡¡//EXIT_ON_CLOSE == 3
¡¡¡¡frame.setDefaultCloseOperation(3);
¡¡¡¡frame.setTitle("Applet Frame");
¡¡¡¡frame.getContentPane().add(applet, BorderLayout.CENTER);
¡¡¡¡applet.init();
¡¡¡¡applet.start();
¡¡¡¡frame.setSize(400,320);
¡¡¡¡Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
¡¡¡¡frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
¡¡¡¡frame.setVisible(true);
¡¡¡¡}
¡¡¡¡//static initializer for setting look & feel
¡¡¡¡static {
¡¡¡¡try {
¡¡¡¡//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
¡¡¡¡//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
¡¡¡¡}
¡¡¡¡catch(Exception e) {
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//Declare DataMember
¡¡¡¡int index;
¡¡¡¡//-----------------------------------------------------
¡¡¡¡JPanel contentPane;
¡¡¡¡JLabel jLabel1 = new JLabel();
¡¡¡¡JLabel jLabel2 = new JLabel();
¡¡¡¡JTextField jTextField2 = new JTextField();
¡¡¡¡JTextField jTextField1 = new JTextField();
¡¡¡¡JButton jButton1 = new JButton();
¡¡¡¡JButton jButton2 = new JButton();
¡¡¡¡JTextField jTextField3 = new JTextField();
¡¡¡¡JLabel jLabel3 = new JLabel();
¡¡¡¡//----------------------N!------------------------------
¡¡¡¡public int function(int N){
¡¡¡¡if(N==1)
¡¡¡¡return 1;
¡¡¡¡else{
¡¡¡¡return N*function(N-1);
¡¡¡¡/*²»ÊÇRETURN function(N-1);
¡¡¡¡¶øÊÇ N*function(N-1);*/
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//-----------Óõݹ鷨ÇóÒ»¸ö´®µÄÈ«ÅÅÁÐ-----------------------
¡¡¡¡public void Arrange(String prefix,String suffix,int[] Array){
¡¡¡¡String newPrefix,newSuffix;
¡¡¡¡int numOfChars =suffix.length();
¡¡¡¡if(numOfChars==1){
¡¡¡¡Array[index]=Integer.parseInt(prefix+suffix);
¡¡¡¡index++;
¡¡¡¡}
¡¡¡¡else{
¡¡¡¡for(int i=1; i<=numOfChars;i++){
¡¡¡¡newSuffix=suffix.substring(1,numOfChars);
¡¡¡¡newPrefix=prefix+suffix.charAt(0);
¡¡¡¡Arrange(newPrefix,newSuffix,Array);
¡¡¡¡suffix=newSuffix+suffix.charAt(0);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//----------Arrange From the Min to the Max------------------
¡¡¡¡/*public void RankForArrange(int[] Array){
¡¡¡¡int bottom=Array.length-1 ;
¡¡¡¡int temp;
¡¡¡¡for(int i=bottom;i>0;i--){
¡¡¡¡for(int j=0;j<i;j++){
¡¡¡¡if(Array[j]>Array[j+1]){
¡¡¡¡temp =Array[j];
¡¡¡¡Array[j] =Array[j+1];
¡¡¡¡Array[j+1]=temp;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡*/
¡¡¡¡//-------------------Find the aim number----------------------
¡¡¡¡public int FindAim(int aim,int[] Array){
¡¡¡¡boolean isFound=false;
¡¡¡¡int location=0;
¡¡¡¡int length=Array.length ;
¡¡¡¡for(int i=0;i<length;i++){
¡¡¡¡if(Array[i]==aim){
¡¡¡¡location=i;
¡¡¡¡isFound =true;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if(isFound)
¡¡¡¡return location;
¡¡¡¡else
¡¡¡¡System.out.println("Not Found");
¡¡¡¡return location;
¡¡¡¡/*ÔÚifÀïreturn ²»ÐÐÂð£¿*/
¡¡¡¡}
¡¡¡¡//------------------Creat String-------------------------------
¡¡¡¡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; //clear to 0
¡¡¡¡String AimString, prefix;
¡¡¡¡AimString = jTextField1.getText();
¡¡¡¡int Length = AimString.length();
¡¡¡¡String strLength = String.valueOf(Length);
¡¡¡¡int Aim = Integer.parseInt(AimString);
¡¡¡¡/* ·½·¨.parseInt²ÅÊÇת»»ÎªintÀàÐÍ
¡¡¡¡¶ø²»ÊÇ.getInteger*/
¡¡¡¡int[] EachArrange = new int[this.function(Length)];
¡¡¡¡jTextField2.setText(strLength);
¡¡¡¡prefix = ""; //Make an empty String
¡¡¡¡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(result);
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡System.out.println("Your String is too short");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//----------Out put result 2---------------------
¡¡¡¡public void OutPutRestlt2(){
¡¡¡¡index=0;//Let index come back to 0
¡¡¡¡String strLength, strMoShu,
¡¡¡¡AimString, prefix,suffix;
¡¡¡¡int Length, MoShu,limit;
¡¡¡¡strLength = jTextField2.getText();
¡¡¡¡strMoShu = jTextField3.getText();
¡¡¡¡Length = Integer.parseInt(strLength);
¡¡¡¡MoShu = Integer.parseInt(strMoShu);
¡¡¡¡limit = function(Length);
¡¡¡¡int[] EachArrange = new int[this.function(Length)];
¡¡¡¡if (Length > 2&&Length<9&&
¡¡¡¡strLength!=""&&strMoShu!=""
¡¡¡¡&&MoShu<limit) {
¡¡¡¡prefix = "";
¡¡¡¡suffix =CreatString(Length);
¡¡¡¡Arrange(prefix, suffix, 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);
¡¡¡¡}
¡¡¡¡}