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

📄 shangpinguanli.java

📁 商品管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package softDesign;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.jface.dialogs.*;

public class shangpinguanli {
	/* 建立面板 */

	private Combo combo;

	static String Goods[] = { "商品", "衬衣", "鞋子", "帽子", "裤子", "冰箱", "电视", "立柜",
			"壁橱", "沙发" };

	static String huogui[] = { "第一货柜", "第二货柜", "衣物货柜", "电器货柜", "家具货柜" };

	static Display display = Display.getDefault();

	static Shell shell = new Shell();

	final String Version = "小型商场管理系统";

	int currentselected;

	GList gl = new GList(null);

	Table TT;

	Composite COMP;

	// 打开警告

	static int reverseGoods(String s) {
		int i = 0;
		for (i = 0; i < Goods.length; i++) {
			if (Goods[i].equals(s))
				break;
		}
		return i;
	}

	public static int Alarm(String title, String message, int type) {

		redo:
		while(true){
		switch (type) {
		case 1:
			MessageDialog.openWarning(shell, title, message);
			break;
		case 2:
			MessageDialog.openError(shell, title, message);
			break;
		case 3:
			return MessageDialog.openConfirm(shell, title, message)?1:0;
		case 4:
			try{
			InputDialog dialog= new InputDialog(shell,title,message,"1",null);
			if( dialog.open()==InputDialog.OK)
			
				return  Integer.parseInt(dialog.getValue() );
			
			else
				return 0;
			
			}catch(Exception e){
				continue redo;
			}
			
		default:
			MessageDialog.openWarning(shell, title, message);

		}
		
		break;
		}
		return 0;
	}

	shangpinguanli() {

		// 初始化程序
		shell.setSize(500, 65);
		shell.setText(Version);
		
		/*
		 * shell.addMouseListener(new MouseAdapter(){ public void
		 * mouseClicked(MouseEvent e){ System.out.println(e.button); }
		 * 
		 * });
		 */

		final Composite composite = new Composite(shell, SWT.NONE);
		composite.setBounds(0, 0, 500, 31);

		final Composite composite_1 = new Composite(shell, SWT.NONE);
		composite_1.setBounds(0, 37, 492, 339);

		final Label label = new Label(composite, SWT.NONE);
		label.setText("选择商品");
		label.setBounds(10, 10, 70, 14);

		combo = new Combo(composite, SWT.READ_ONLY);
		for (int i = 0; i < Goods.length; i++) {
			combo.setItems(Goods);
		}

		combo.select(0);

		combo.setBounds(86, 7, 126, 22);
		combo.setLayout(new FillLayout());
		final Button button = new Button(composite, SWT.NONE);
		button.setText("打开");
		button.setBounds(218, 5, 50, 24);
		button.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				String str = Goods[combo.getSelectionIndex()];
				showGoods(composite_1, str);

			}
		});
		final Button addGoods = new Button(composite, SWT.NONE);
		addGoods.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent arg0) {
				if( combo.getSelectionIndex()>0 ){
				    String str = Goods[combo.getSelectionIndex()];
				    addGoods(composite_1, str, combo.getSelectionIndex(), 0);
				}
			}
		});
		addGoods.setText("添加");
		addGoods.setBounds(274, 5, 50, 24);

		final Button sellGoods = new Button(composite, SWT.NONE);
		sellGoods.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent arg0) {
				if (!(TT == null) && !TT.isDisposed()) {
					int selected = TT.getSelectionIndex();

					if (selected >= 0) {
						currentselected = Integer.parseInt(TT.getItem(selected)
								.getText(0));
						int decnum=Alarm("出售商品","请输入出售的商品数",4);
						
						int returned = gl.decMore(currentselected,decnum);
						if (returned == 0){
							if( Alarm("提示", "商品库存不足无法继续出售,要修改商品吗?", 3)==1)
								addGoods(composite_1, TT.getItem(selected).getText(7),
										reverseGoods(TT.getItem(selected)
												.getText(7)), currentselected);

						}
					    TT.getItem(selected).setText(5,gl.peek(currentselected).stored + "");
						// gl.remove(currentselected);
						// TT.remove(selected);
						
					} else {

						Alarm("提示", "您还没有选择商品!", 1);
						System.out.println("您还没有选择商品!");
					}

				}
			}
		});
		sellGoods.setText("出售");
		sellGoods.setBounds(329, 5, 50, 24);

		final Button showCalculate = new Button(composite, SWT.NONE);
		showCalculate.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent arg0) {

				sumGoods(composite_1);

			}
		});
		showCalculate.setText("统计");
		showCalculate.setBounds(385, 5, 50, 24);

		// Gnode gn = new Gnode("未知", 17, 50, "徐州", 10, "第一货柜");
		// gl = new GList(gn);

		gl.add(new GClose("保暖内衣", 19, 50, "广州", 10, "第一货柜", "衬衣", "纯棉"));
		gl.add(new GClose("皮鞋", 19, 1, "温州", 10, "第一货柜", "鞋子", "纯棉"));
		gl.add(new GClose("圆领衬衣", 19, 50, "上海", 10, "第一货柜", "衬衣", "纯棉"));
		gl.add(new GClose("花领衬衣", 19, 40, "上海", 10, "第一货柜", "衬衣", "纯棉"));
		gl.add(new GClose("圆领衬衣", 19, 50, "上海", 10, "第一货柜", "衬衣", "纯棉"));
		gl.add(new GElectronic("海信", 19, 50, "上海", 10, "第一货柜", "电视", "白色",
				"纯平", 50.4));
		gl.add(new GElectronic("海尔", 19, 50, "上海", 10, "第一货柜", "冰箱", "白色",
				"二门", 50.4, "压缩制冷"));
		gl.add(new GWood("宜家", 19, 800, "上海", 10, "家具货柜", "壁橱", "红木", "白色"));
		gl.add(new GWood("宜家", 19, 900, "上海", 6, "家具货柜", "立柜", "红木", "红色"));

		// 打开控制面板 ///////////////////
		shell.setLocation(400, 300);
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.isDisposed()) {
				/*
				 * Runnable ra=new Runnable(){ public void run(){ } };
				 * display.syncExec(ra);
				 */
			}
			if (!display.readAndDispatch())
				display.sleep();
		}
	}

	
	//显示商品的处理函数
	void showGoods(final Composite comp, final String s) {

		if (!(TT == null))
			TT.dispose();
		if (!(COMP == null))
			COMP.dispose();
		setShell();

		final Table tableTree = new Table(comp, SWT.NONE);
		tableTree.setBounds(2, 0, 490, 420);
		tableTree.setLinesVisible(true);
		tableTree.setHeaderVisible(true);
		tableTree.addMouseListener(new MouseAdapter() {
			public void mouseDoubleClick(MouseEvent e) {
                //添加侦听事件
				int selected = tableTree.getSelectionIndex();
				if (selected >= 0) {
					currentselected = Integer.parseInt(TT.getItem(selected)
							.getText(0));
					if (Alarm("提示", "要修改本商品吗?", 3)==1) {

						/*
						 * 一种方法 addGoods(comp, s,
						 * combo.getSelectionIndex(),currentselected);
						 */

						addGoods(comp, tableTree.getItem(selected).getText(7),
								reverseGoods(tableTree.getItem(selected)
										.getText(7)), currentselected);

					}
				}

			}

			public void mouseUp(MouseEvent e) {

				if (e.button == 3) {
					int selected = tableTree.getSelectionIndex();

					if (selected >= 0) {
						currentselected = Integer.parseInt(TT.getItem(selected)
								.getText(0));

						if (Alarm("提示", "您真的要删除此商品吗?", 3)==1) {
							tableTree.remove(selected);
							gl.remove(currentselected);
						}
					}
				}
			}

		});

		Gnode temp = gl.head;
		int column = 0;
		if (temp == null || s.equals("商品"))
			column = Gnode.property.length;
		else {
			while (!temp.goods.equals(s)) {
				temp = temp.next;
				if (temp == null)
					break;
			}
			if (temp == null)
				column = Gnode.property.length;
			else
				column = Gnode.property.length + temp.shelfproperty.length;
		}

		// if (temp == null)
		// System.out.println(column);

		int tabcolWidth = tableTree.getBounds().width / (column + 2);

		// 新建Table

		TableColumn ID = new TableColumn(tableTree, SWT.NONE);
		ID.setText("编号");

		ID.setWidth(tabcolWidth);
		TableColumn col[] = new TableColumn[column];

		for (int i = 0; i < Gnode.property.length; i++) {
			col[i] = new TableColumn(tableTree, SWT.NONE);
			col[i].setText(Gnode.property[i]);
			col[i].setWidth(tabcolWidth);
		}
		TableColumn Gproperty = new TableColumn(tableTree, SWT.NONE);
		Gproperty.setText("属性");
		Gproperty.setWidth(tabcolWidth);

		/*
		 * 
		 * for (int i=0;i<temp.shelfproperty.length;i++){
		 * col[Gnode.property.length+i]=new TableColumn(tableTree,SWT.NONE);
		 * col[Gnode.property.length+i].setText(temp.shelfproperty[i]);
		 * col[Gnode.property.length+i].setWidth(tabcolWidth); }
		 */

		while (temp != null) {
			if (temp.goods.equals(s) || s.equals("商品"))
				createItem(tableTree, temp.getEntity(), temp.goods);
			temp = temp.next;
		}
		TT = tableTree;
	}
      //添加商品
	void addGoods(final Composite comp, final String s, final int i,
			final int change) {

		if (!(TT == null))
			TT.dispose();
		if (!(COMP == null))
			COMP.dispose();

		final Composite composite_2 = new Composite(comp, SWT.NONE);
		composite_2.setBounds(10, 10, 416, 319);
		COMP = composite_2;
		final Label label_1 = new Label(composite_2, SWT.NONE);
		label_1.setText("名字");
		label_1.setBounds(6, 10, 24, 14);

		final Combo gproperty;
		final Combo ghuogui;

		ghuogui = new Combo(composite_2, SWT.READ_ONLY);
		ghuogui.setBounds(50, 164, 118, 22);
		ghuogui.setItems(huogui);
		ghuogui.select(0);

		gproperty = new Combo(composite_2, SWT.READ_ONLY);
		gproperty.setBounds(209, 38, 118, 22);
		gproperty.setItems(Goods);

		gproperty.select(i);

		final Text gstored;
		final Text gfrom;
		final Text gprice;
		final Text gsize;
		final Text gname;
		gname = new Text(composite_2, SWT.BORDER);
		gname.setBounds(50, 7, 118, 25);

		final Label label_2 = new Label(composite_2, SWT.NONE);
		label_2.setText("属性");
		label_2.setBounds(164, 41, 42, 14);

		final Label label_3 = new Label(composite_2, SWT.NONE);
		label_3.setText("尺寸");
		label_3.setBounds(6, 41, 30, 14);

		gsize = new Text(composite_2, SWT.BORDER);
		gsize.setBounds(50, 38, 80, 25);

		gprice = new Text(composite_2, SWT.BORDER);
		gprice.setBounds(50, 69, 80, 25);

		final Label label_4 = new Label(composite_2, SWT.NONE);
		label_4.setText("价格");
		label_4.setBounds(8, 72, 28, 14);

		final Label label_5 = new Label(composite_2, SWT.NONE);
		label_5.setText("(元)");
		label_5.setBounds(140, 72, 55, 14);

		gfrom = new Text(composite_2, SWT.BORDER);
		gfrom.setBounds(50, 100, 192, 25);

		final Label label_6 = new Label(composite_2, SWT.NONE);
		label_6.setText("产地");
		label_6.setBounds(6, 103, 28, 14);

		final Label label_7 = new Label(composite_2, SWT.NONE);
		label_7.setText("库存");
		label_7.setBounds(8, 134, 28, 14);

		gstored = new Text(composite_2, SWT.BORDER);
		gstored.setBounds(50, 131, 80, 25);

		final Label label_5_1 = new Label(composite_2, SWT.NONE);
		label_5_1.setBounds(140, 131, 55, 14);
		label_5_1.setText("(件)");

		final Label label_8 = new Label(composite_2, SWT.NONE);
		label_8.setText("货柜");
		label_8.setBounds(10, 167, 28, 14);

		final Composite composite_3 = new Composite(composite_2, SWT.NONE);
		composite_3.setBounds(6, 195, 400, 70);

⌨️ 快捷键说明

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