📄 cubeapplication.java
字号:
/*
* Java Virtual Cube
* -----------------
*
* Copyright 1996, Song Li
* URL: http://www.cs.umbc.edu/~sli2
*
*
* You can use the code for any nonprofittable use. But remember to mention
* the authors' names in your revised program. You are also encouraged to
* improve the program or give your comments and bug reports. If there are
* further questions, please contact me and I'll be glad to help. My E-Mail
* address is: sli2@gl.umbc.edu.
*
*/
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class CubeApplication extends Frame implements ComponentListener{
private CubePanel CubeWin ;
private Button NewButton ;
private Button ScrambleButton ;
private Button SolveButton ;
//private Button AboutButton ;
private Button UndoButton ;
//private Button RedoButton ;
//private Button ExitButton ;
private Checkbox SoundCheckbox ;
private Checkbox LightCheckbox ;
private Label StepLabel ;
private Label StepText ;
private MenuBar mbar;
private Menu menu;
private MenuItem mitem, msolve;
CubeAbout aboutwin;
AboutCrEme aboutcreme;
static CubeApplication app = null;
public void init () {
setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
setLayout (null);
Panel control = new Panel ();
control.setLayout (null) ;
add (control) ;
control.setBounds (0, 215,getSize().width, getSize().height) ;
NewButton = new Button ("New") ;
ScrambleButton = new Button ("Scramble") ;
SolveButton = new Button ("Solve") ;
//AboutButton = new Button ("About") ;
UndoButton = new Button ("Undo") ;
//RedoButton = new Button ("Redo") ;
//ExitButton = new Button ("Exit");
SoundCheckbox = new Checkbox ("Move") ;
//LightCheckbox = new Checkbox ("Light") ;
StepLabel = new Label ("Step") ;
StepText = new Label ("0") ;
SoundCheckbox.setState (false) ;
//LightCheckbox.setState (false) ;
aboutwin = new CubeAbout ();
aboutcreme = new AboutCrEme ();
control.add (NewButton) ;
control.add (ScrambleButton) ;
control.add (SolveButton) ;
//control.add (AboutButton) ;
control.add (UndoButton) ;
//control.add (ExitButton) ;
control.add (SoundCheckbox) ;
//control.add (LightCheckbox) ;
control.add (StepLabel) ;
control.add (StepText) ;
if (CubeWin!=null) remove(CubeWin);
CubeWin = new CubePanel (StepText) ;
CubeWin.setLayout (null) ;
add (CubeWin) ;
CubeWin.setBounds ((getSize().width-238)/2, 15, 250, 200) ;
CubeWin.DefineBound () ;
/*try {
CubeWin.BadSound = new sun.applet.AppletAudioClip(new java.net.URL(illegal.au");
CubeWin.SpinSound = new sun.applet.AppletAudioClip("spin.au");
} catch (Exception e){}*/
NewButton.setBounds (10, 5, 60, 25) ; //AboutButton.setBounds (80, 5, 60, 25) ;
ScrambleButton.setBounds (10, 35, 60, 25) ; SolveButton.setBounds (80, 35, 60, 25) ;
UndoButton.setBounds (80, 5, 60, 25) ; //RedoButton.setBounds (80, 65, 60, 25) ;
StepLabel.setBounds (150, 5, 25, 25) ;
StepText.setBounds (180, 5, 30, 25) ;
SoundCheckbox.setBounds (150, 35, 60, 25) ;
//LightCheckbox.setBounds (150, 65, 60, 25) ;
//ExitButton.setBounds (80, 65, 60, 25) ;
mbar = new MenuBar();
menu = new Menu("File");
mbar.add(menu);
mitem = new MenuItem("New");
menu.add(mitem);
mitem = new MenuItem("Scramble");
menu.add(mitem);
msolve = new MenuItem("Solve");
menu.add(msolve);
mitem = new MenuItem("Exit");
menu.add(mitem);
menu = new Menu("Edit");
mbar.add(menu);
mitem = new MenuItem("Undo");
menu.add(mitem);
mitem = new MenuItem("Redo");
menu.add(mitem);
menu = new Menu("Help");
mbar.setHelpMenu(menu);
mitem = new MenuItem("About");
menu.add(mitem);
mitem = new MenuItem("About CrEme");
menu.add(mitem);
setMenuBar(mbar);
show();
start();
}
public void start () {CubeWin.Start () ;}
public void stop () {CubeWin.Stop () ;}
public CubeApplication (String s) {
super(s);
}
public synchronized boolean handleEvent (Event event) {
if (event.id == Event.ACTION_EVENT) {
if ("About".equals (event.arg))
aboutwin.setVisible(true);
//else if (event.target == LightCheckbox)
// Face.SetLight (LightCheckbox.getState ());
else if ("About CrEme".equals (event.arg))
aboutcreme.setVisible(true);
else if ("Exit".equals (event.arg))
System.exit(0);
else{
if (event.target == msolve || event.target == SolveButton) {
event.target = SolveButton;
if (msolve.getLabel().equals("Solve"))
msolve.setLabel("Stop");
else
msolve.setLabel("Solve");
}
CubeWin.CommandAction (event) ;
}
} else if (event.id == WindowEvent.WINDOW_CLOSING)
System.exit(0);
return true ;
}
public void componentResized(java.awt.event.ComponentEvent e) {
if (e instanceof java.awt.event.WindowEvent) {
setVisible(false);
stop();
init();
}
}
public void componentMoved(ComponentEvent e) {}
public void componentShown(ComponentEvent e) {}
public void componentHidden(ComponentEvent e) {}
public static void main(String args[]) {
app = new CubeApplication("Cube Application");
app.init();
app.addComponentListener(app);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -