📄 taskdialog.java
字号:
//// The contents of this file are subject to the Mozilla Public// License Version 1.1 (the "License"); you may not use this file// except in compliance with the License. You may obtain a copy// of the License at http://www.mozilla.org/MPL/// // Software distributed under the License is distributed on an// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or// implied. See the License for the specific language governing// rights and limitations under the License.// // The Original Code is State Machine Compiler (SMC).// // The Initial Developer of the Original Code is Charles W. Rapp.// Portions created by Charles W. Rapp are// Copyright (C) 2000 - 2003 Charles W. Rapp.// All Rights Reserved.// // Contributor(s): //// Name// TaskDialog.java//// Description// Dialog for creating new tasks.//// RCS ID// $Id: TaskDialog.java,v 1.5 2007/02/21 13:40:48 cwrapp Exp $//// CHANGE LOG// $Log: TaskDialog.java,v $// Revision 1.5 2007/02/21 13:40:48 cwrapp// Moved Java code to release 1.5.0//// Revision 1.4 2005/05/28 13:51:24 cwrapp// Update Java examples 1 - 7.//// Revision 1.0 2003/12/14 20:13:26 charlesr// Initial revision//package smc_ex5;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.JTextField;import javax.swing.SwingConstants;import java.awt.BorderLayout;import java.awt.Component;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.HashMap;import java.util.Map;public final class TaskDialog{// Member Methods // Create the task creation dialog but don't display it. // Leave it hidden and make it visible when it is needed. // When the user quits the dialog, just hide it again. public TaskDialog() { // Create actual dialog if it has not been done already. if (_isInitialized == false) { _isInitialized = true; _title = new String("Task Creation"); createDialog(); } } public void activate() { _frame.setVisible(true); return; } public void deactivate() { resetComponents(); _frame.setVisible(false); return; } private void createDialog() { // Create the dialog's frame. _frame = new JFrame(_title); // Create the dialog's components (text boxes, sliders // and buttons) and place them into the content pane. Component contents = createComponents(); // Add the contents to the frame. _frame.getContentPane().add(contents, BorderLayout.CENTER); // When this dialog is closed, simply undisplay it. _frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { deactivate(); } }); _frame.pack(); // This dialog is hidden until the "Task Create..." // button is clicked. _frame.setVisible(false); return; } private Component createComponents() { JLabel label; // Use a text field for the task name. _taskNameField = new JTextField(TaskMessages.NAME_LEN); _taskNameLabel = new JLabel("Task Name: "); _taskNameLabel.setLabelFor(_taskNameField); _taskNameLabel.setVerticalTextPosition( SwingConstants.CENTER); _taskNameLabel.setHorizontalTextPosition( SwingConstants.RIGHT); // Use a slider for the task runtime. _taskRuntimeSlider = new JSlider(JSlider.HORIZONTAL, 10, 60, 10); _taskRuntimeSlider.setMajorTickSpacing(10); _taskRuntimeSlider.setMinorTickSpacing(1); _taskRuntimeSlider.setPaintTicks(true); _taskRuntimeSlider.setPaintLabels(true); _taskRuntimeSlider.setSnapToTicks(true); _taskRuntimeLabel = new JLabel("Runtime (secs.): "); _taskRuntimeLabel.setLabelFor(_taskRuntimeSlider); _taskRuntimeLabel.setVerticalTextPosition( SwingConstants.CENTER); _taskRuntimeLabel.setHorizontalTextPosition( SwingConstants.RIGHT); // Use a slider for the task priority. _taskPrioritySlider = new JSlider(JSlider.HORIZONTAL, 0, 10, 0); _taskPrioritySlider.setMajorTickSpacing(5); _taskPrioritySlider.setMinorTickSpacing(1); _taskPrioritySlider.setPaintTicks(true); _taskPrioritySlider.setPaintLabels(true); _taskPrioritySlider.setSnapToTicks(true); _taskPriorityLabel = new JLabel("Task Priority: "); _taskPriorityLabel.setLabelFor(_taskPrioritySlider); _taskPriorityLabel.setVerticalTextPosition( SwingConstants.CENTER); _taskPriorityLabel.setHorizontalTextPosition( SwingConstants.RIGHT); // Create four buttons: OK, Apply, Reset and Cancel. _okButton = new JButton("OK"); _okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Get the values from the components and // create a task from them. createTask(_taskNameField.getText(), _taskRuntimeSlider.getValue(), _taskPrioritySlider.getValue()); // Then hide this canvas. _frame.setVisible(false); } }); _okButton.setEnabled(true); _applyButton = new JButton("Apply"); _applyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createTask(_taskNameField.getText(), _taskRuntimeSlider.getValue(), _taskPrioritySlider.getValue()); } }); _applyButton.setEnabled(true); _resetButton = new JButton("Reset"); _resetButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { resetComponents(); } }); _resetButton.setEnabled(true); _cancelButton = new JButton("Cancel"); _cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { deactivate(); } }); // Use the gridbag layout for the dialog GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints gridConstraints = new GridBagConstraints(); JPanel pane = new JPanel(); pane.setBorder( BorderFactory.createEmptyBorder(30, // top 30, // left 30, // bottom 30) // right ); pane.setLayout(gridbag); // Place components into gridbag and so into the pane. gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 0; gridConstraints.gridy = 0; gridConstraints.gridwidth = 1; gridbag.setConstraints(_taskNameLabel, gridConstraints); pane.add(_taskNameLabel); gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 1; gridConstraints.gridy = 0; gridConstraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(_taskNameField, gridConstraints); pane.add(_taskNameField); gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 0; gridConstraints.gridy = 1; gridConstraints.gridwidth = 1; gridbag.setConstraints(_taskRuntimeLabel, gridConstraints); pane.add(_taskRuntimeLabel); gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 1; gridConstraints.gridy = 1; gridConstraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(_taskRuntimeSlider, gridConstraints); pane.add(_taskRuntimeSlider); gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 0; gridConstraints.gridy = 2; gridConstraints.gridwidth = 1; gridbag.setConstraints(_taskPriorityLabel, gridConstraints); pane.add(_taskPriorityLabel); gridConstraints.anchor = GridBagConstraints.NORTH; gridConstraints.gridx = 1; gridConstraints.gridy = 2; gridConstraints.gridwidth = GridBagConstraints.REMAINDER; gridbag.setConstraints(_taskPrioritySlider, gridConstraints); pane.add(_taskPrioritySlider); gridConstraints.anchor = GridBagConstraints.SOUTH; gridConstraints.gridx = 0; gridConstraints.gridy = 3; gridConstraints.gridwidth = 1; gridbag.setConstraints(_okButton, gridConstraints); pane.add(_okButton); gridConstraints.anchor = GridBagConstraints.SOUTH; gridConstraints.gridx = 1; gridConstraints.gridy = 3; gridbag.setConstraints(_applyButton, gridConstraints); pane.add(_applyButton); gridConstraints.anchor = GridBagConstraints.SOUTH; gridConstraints.gridx = 2; gridConstraints.gridy = 3; gridbag.setConstraints(_resetButton, gridConstraints); pane.add(_resetButton); gridConstraints.anchor = GridBagConstraints.SOUTH; gridConstraints.gridx = 3; gridConstraints.gridy = 3; gridbag.setConstraints(_cancelButton, gridConstraints); pane.add(_cancelButton); return(pane); } private void createTask(String name, int runtime, int priority) { Map<String, Object> args = new HashMap<String, Object>(); TaskController control = new TaskController(); args.put("Task Name", name); args.put("Runtime", new Integer(runtime)); args.put("Priority", new Integer(priority)); control.postMessage("Task Manager", "Create Task", args); return; } private void resetComponents() { _taskNameField.setText(null); _taskRuntimeSlider.setValue(10); _taskPrioritySlider.setValue(0); return; }// Member Data // There is only one dialog object. Initialize the task // creation dialog only once. private static boolean _isInitialized = false; // Dialog's GUI components. JFrame _frame; JTextField _taskNameField; JLabel _taskNameLabel; JSlider _taskRuntimeSlider; JLabel _taskRuntimeLabel; JSlider _taskPrioritySlider; JLabel _taskPriorityLabel; JButton _okButton; JButton _applyButton; JButton _resetButton; JButton _cancelButton; // The dialog's frame title. String _title;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -