📄 shangpinguanli.java
字号:
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 + -