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

📄 taskeditdialog.java

📁 一个用于安排项目时间表的Java程序
💻 JAVA
字号:
/* *  $Id: TaskEditDialog.java,v 1.1.1.1 2001/03/20 22:17:41 mastermitch Exp $  * *  2001 (C) by Christian Garbs <mitch@uni.de> * *  Licensed under GNU GPL (see COPYING for details) * */package de.cgarbs.apps.jprojecttimer;import java.awt.BorderLayout;import java.awt.Component;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionListener;import java.util.Enumeration;import java.util.Vector;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextField;import javax.swing.ListSelectionModel;public class TaskEditDialog extends JDialog implements ActionListener{    Task t;    TaskList tasks;    JTextField name, length, completion;    JList list;    final static String OK_BUTTON = "ok";    TaskEditDialog(JFrame owner, TaskList tasks, int index)    {	super(owner, Resource.get("editTaskDialogTitle"), true);	t = (Task) tasks.elementAt(index);		this.tasks = tasks;	Vector showedList = new Vector(tasks);	showedList.removeElementAt(index);	list = new JList(showedList);	list.setPrototypeCellValue("ABCDEFGHIJKLMNOPQRST");	list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);	for (Enumeration e = ((Task) tasks.elementAt(index)).getDependencies().elements(); e.hasMoreElements(); ) {	    int i = tasks.indexOf(e.nextElement());	    list.addSelectionInterval(i,i);	}        Component contents = createComponents();        getContentPane().add(contents, BorderLayout.CENTER);		pack();	setVisible(true);    }    void buildConstraints(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy)    {	gbc.gridx = gx;	gbc.gridy = gy;	gbc.gridwidth = gw;	gbc.gridheight = gh;	gbc.weightx = wx;	gbc.weighty = wy;    }    Component createComponents()    {	GridBagLayout gridbag = new GridBagLayout();	GridBagConstraints constraints = new GridBagConstraints();	JPanel panel = new JPanel(gridbag);	// Labels	buildConstraints(constraints, 0, 0, 1, 1, 10, 40);	constraints.fill = GridBagConstraints.NONE;	constraints.anchor = GridBagConstraints.EAST;	JLabel label1 = new JLabel(" "+Resource.get("task")+": ");	gridbag.setConstraints(label1, constraints);	panel.add(label1);	buildConstraints(constraints, 0, 1, 1, 1, 10, 40);	constraints.fill = GridBagConstraints.NONE;	constraints.anchor = GridBagConstraints.EAST;	JLabel label2 = new JLabel(" "+Resource.get("duration")+": ");	gridbag.setConstraints(label2, constraints);	panel.add(label2);	buildConstraints(constraints, 0, 2, 1, 1, 10, 40);	constraints.fill = GridBagConstraints.NONE;	constraints.anchor = GridBagConstraints.NORTHEAST;	JLabel label3 = new JLabel(" "+Resource.get("finished")+" %: ");	gridbag.setConstraints(label3, constraints);	panel.add(label3);	buildConstraints(constraints, 0, 3, 1, 1, 10, 40);	constraints.fill = GridBagConstraints.NONE;	constraints.anchor = GridBagConstraints.NORTHEAST;	JLabel label4 = new JLabel(" "+Resource.get("predecessors") + ": ");	gridbag.setConstraints(label4, constraints);	panel.add(label4);	// Textfelder	buildConstraints(constraints, 1, 0, 1, 1, 90, 0);	constraints.fill = GridBagConstraints.HORIZONTAL;	name = new JTextField(t.getName());	gridbag.setConstraints(name, constraints);	panel.add(name);	buildConstraints(constraints, 1, 1, 1, 1, 90, 0);	constraints.fill = GridBagConstraints.HORIZONTAL;	length = new JTextField(Integer.toString(t.getLength()));	gridbag.setConstraints(length, constraints);	panel.add(length);	buildConstraints(constraints, 1, 2, 1, 1, 90, 0);	constraints.fill = GridBagConstraints.HORIZONTAL;	completion = new JTextField(Integer.toString(t.getCompletion()));	gridbag.setConstraints(completion, constraints);	panel.add(completion);	// Listbox	buildConstraints(constraints, 1, 3, 1, 1, 90, 0);	constraints.fill = GridBagConstraints.HORIZONTAL;	JScrollPane listScrollPane = new JScrollPane(list);	gridbag.setConstraints(listScrollPane, constraints);	panel.add(listScrollPane);	// Buttons	buildConstraints(constraints, 1, 4, 1, 1, 10, 40);	constraints.fill = GridBagConstraints.NONE;	constraints.anchor = GridBagConstraints.WEST;	JButton b = new JButton(Resource.get("okButton"));	b.setActionCommand(OK_BUTTON);	b.addActionListener(this);	gridbag.setConstraints(b, constraints);	panel.add(b);	return panel;    }    public void actionPerformed(java.awt.event.ActionEvent e)    {	if (e.getActionCommand().equals(OK_BUTTON)) {	    saveValues();	    hide();	}    }    void saveValues()    {	try {	    t.setLength(Integer.parseInt(length.getText()));	}	catch (java.lang.NumberFormatException ex) {	    t.setLength(0);	}	try {	    t.setCompletion(Integer.parseInt(completion.getText()));	}	catch (java.lang.NumberFormatException ex) {	    t.setCompletion(0);	}	t.setName(name.getText());	int[] indices = list.getSelectedIndices();	TaskList newDependencies = new TaskList();	for (int i=0; i < indices.length; i++) {	    Task element = (Task) tasks.elementAt(indices[i]);	    if (element.checkRecursion(t)) {		JOptionPane.showMessageDialog(this, element.getName()+": "+Resource.get("recursionWarning"), Resource.get("warningDialogTitle"), JOptionPane.WARNING_MESSAGE);	    } else {		newDependencies.addElement(element);	    }	}	t.setDependencies(newDependencies);    }}

⌨️ 快捷键说明

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