old-www/LDP/LG/issue29/hamilton/Player.java

95 lines
4.6 KiB
Java

package Jcd; // -- Listing-1 -- Player.java // 1
// 2
import java.io.*; // 3
import java.util.*; // 4
import java.awt.*; // 5
import java.awt.event.*; // 6
// 7
import Jcd.*; // 8
// 9
public class Player // 10
extends Form
implements ActionListener { // Main window.
// 11
SmartDrive cdPlayer; // Hardware interface // 12
Program program; // Program tracks to play.
// 14
Display display; // Numeric display // 15
Controls controls; // Push buttons // 16
// 17
// File-Menu items // 18
private MenuItem fileProgramItem =
new MenuItem("Program"); // 19
private MenuItem fileExitItem =
new MenuItem("Exit"); // 20
// 21
// // 22
// 1. Connect to a cdrom device. // 23
// 2. Create the interface: // 24
// the display-panel; // 25
// the control-panel; // 26
// 3. Establish the panel components as // 27
// clients of the monitor. // 28
// 29
public static void main(String[] args) // 30
{ // 31
Player player = // 32
new Player(); // Create a GUI CD player
} // 33
// 34
public Player() // 35
{ // 36
super("Jcd"); // 37
// Init CDROM hardware // 38
String device = "/dev/cdrom"; // 39
String module =
"native/ix86-Linux/Jcd_Drive.so"; // 40
int flags = 0; // 41
// 42
cdPlayer= new SmartDrive(device,module,flags);
// Init GUI // 44
setResizable(true); // 45
setMenuBar(new MenuBar()); // 46
getMenuBar().add(createFileMenu()); // 47
display = new Display(cdPlayer); // 48
controls = new Controls(cdPlayer); // 49
addCenter(display); // 50
addCenter(controls); // 51
// Handle close requests.
addWindowListener(new DoClose()); // 52
pack(); // Resize to fit. // 53
show(); // Let the user have it! // 54
// Now everyone is ready...// 55
// ...start processing events
cdPlayer.monitor.start(); // 56
} // 57
// 58
public void actionPerformed(ActionEvent event)
{ // 60
Object source = event.getSource(); // 61
if (source == fileProgramItem) { // 62
if (program == null || !program.isShowing())
program = new Program(cdPlayer); // 64
} // 65
else if (source == fileExitItem) // 66
System.exit(0); // 67
} // 68
// 69
private Menu createFileMenu() // 70
{ // 71
Menu fileMenu = new Menu("File"); // 72
fileMenu.add(fileProgramItem); // 73
fileMenu.addSeparator(); // 74
fileMenu.add(fileExitItem); // 75
fileProgramItem.addActionListener(this); // 76
fileExitItem.addActionListener(this); // 77
return fileMenu; // 78
} // 79
// 80
private class DoClose extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0); // 83
} // 84
} // 85
} // 86