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

📄 appletbutton.java

📁 java语言与面向对象程序设计源程序
💻 JAVA
字号:

//<applet code=AppletButton.class width=200 height=80>
//</applet>

import java.awt.*;
import java.util.*;
import java.applet.Applet;
public class AppletButton extends Applet implements Runnable {
  int frameNumber = 1;
  String  windowClass; 
  String  buttonText; 
  String  windowTitle;
  int requestedWidth = 0;
  int requestedHeight = 0;
  Button button;
  Thread windowThread;
  Label label;
  boolean pleaseCreate = false;
  public void init( ) {
    windowClass = getParameter("WINDOWCLASS");
    if (windowClass == null) {
      windowClass = "TestWindow";
    }
    buttonText = getParameter("BUTTONTEXT");
    if (buttonText == null) {
      buttonText = "Click here to bring up a " + windowClass;
    }
    windowTitle = getParameter("WINDOWTITLE");
    if (windowTitle ==null) {
       windowTitle = windowClass;
    }
    String windowWidthString = getParameter("WINDOWWIDTH");
    if (windowWidthString !=null) {
      try {
           requestedWidth = Integer.parseInt (windowWidthString);
          } catch (NumberFormatException e) {
          //Use default width.
          }
    }
    String windowHeightString = getParameter("WINDOWHEIGHT");
    if (windowHeightString !=null)  {
       try {
            requestedHeight = Integer.parseInt(windowHeightString);
           } catch (NumberFormatException e) {
              //Use default height.
           }
    }
    setLayout (new GridLayout (2,0));
    add (button = new Button (buttonText));
    button.setFont (new Font ("Helvetica",Font.PLAIN,14));
    add(label = new Label("",Label.CENTER));
    }// init函数结束

   public void start( ) {
     if (windowThread == null) {
     windowThread = new Thread (this,"Bringing Up" + windowClass);
     windowThread.start ( );
     }
   }
  public synchronized void run ( )  {
     Class windowClassObject = null;
     Class tmp = null;
     String name = null;
     // Make sure the window class exists and is really a Frame.
     // This has the added benefit of pre-loading the class,
     // which makes it much quicker for the first window to come up.
     try {
            windowClassObject = Class.forName (windowClass);
         } catch (Exception e)  {
         // The specified class isn't anywhere that we can find.
              label.setText ("Can't create window: Couldn't find class"
               + windowClass);
           button.disable ( );
         return;
        }
      // Find out whether the class is a Frame.
      for (tmp = windowClassObject,name = tmp.getName ();
           ! (name.equals ("java.lang.Object") || name.equals ("java.awt.Frame") ); ) {
          tmp = tmp.getSuperclass ( );
          name = tmp.getName ( );
          }
      if ((name == null) || name.equals ("java.lang.Object") )  {
                //We can't run; ERROR; print status, never bring up window
          label.setText ("Can't create window: " + windowClass + 
           "isn't a Frame subclass.");
          button.disable( );
          return;
          } else if (name.equals ("java.awt.Frame")) {
                       //Everything's OK. Wait until we're asked to create a window.
                 while (windowThread != null) {
                     while (pleaseCreate == false)  {
                          try {
                                 wait ( );
                              } catch (InterruptedException e)  {
                              }
                          }
                     //We've been asked to bring up a window.
                    pleaseCreate = false;
                    Frame window = null;
                    try {
                         window = (Frame)windowClassObject.newInstance ( );
                        } catch (Exception e)  {
                             label.setText ("Couldn't create instance of class "+windowClass);
                             button.disable ( );
                             return;
                        }
                   if (frameNumber == 1)  {
                       window.setTitle (windowTitle);
                       } else {
                               window.setTitle (windowTitle + ": " + frameNumber);
                       }
                  frameNumber++;
                      //Set the window's size.
                  window.pack ( );
                  if ((requestedWidth > 0) || (requestedHeight > 0)) {
                     window.resize (Math.max(requestedWidth,window.size ( ).width),
                     Math.max (requestedHeight,window.size ( ).height));
                  }
                  window.show( );
                  label.setText("");
              }
           }
        }
       public synchronized boolean action(Event event,Object what) {
          if (event.target instanceof Button) {
                 //signal the window thread to build a window
             label.setText ("Please wait while the window comes up…");
             pleaseCreate = true ;
             notify ( );
             }
          return true;
          }
       }

       class TestWindow extends Frame  {
           public TestWindow ( ) {
              resize (300, 300);
           }
       }

⌨️ 快捷键说明

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