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

📄 winmain.java

📁 这是一款用swt做的外贸统计系统
💻 JAVA
字号:
package com.dc;

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.ShellAdapter;
import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import com.swtdesigner.SWTResourceManager;
import java.lang.StringBuffer;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.graphics.Rectangle;

public class WinMain extends Shell {

	private Text basic_data;

	private List list;

	private Text sum_data;
	
	private Label result;
	private static Display display;

	/**
	 * Launch the application
	 * 
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			display = Display.getDefault();
			WinMain shell = new WinMain(display, SWT.CLOSE);
			shell.open();
			shell.layout();
			Monitor primary = shell.getMonitor();
			Rectangle bounds = primary.getBounds();
			Rectangle rect = shell.getBounds();
			int x = bounds.x + (bounds.width - rect.width) / 2;
			int y = bounds.y + (bounds.height - rect.height) / 2;
			if (x < 0)
				x = 0;
			if (y < 0)
				y = 0;
			shell.setLocation(x, y);
			while (!shell.isDisposed()) {
				if (!display.readAndDispatch())
					display.sleep();
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the shell
	 * 
	 * @param display
	 * @param style
	 */
	public WinMain(Display display, int style) {
		super(display, style);
		createContents();
		setImage(SWTResourceManager.getImage(WinMain.class,
		"/image/chinaz9.ico"));
		addShellListener(new ShellAdapter() {
			public void shellClosed(ShellEvent e) {
				MessageBoxShow msgbox = new MessageBoxShow("确定退出系统",
				"提示");
				msgbox.start();
			}
		});
	}

	/**
	 * Create contents of the window
	 */
	protected void createContents() {
		setText("外贸财物统计");
		setSize(642, 499);

		final Button button = new Button(this, SWT.NONE);
		button.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				int sum_data_in = 0;

				if (sum_data.getText().trim().equals("")) {
					MessageBoxShow msgbox = new MessageBoxShow("您输入的总数不能为空!",
					"提示");
					msgbox.start();
				} else {
					sum_data_in = Integer.parseInt(sum_data.getText());
				}

				if (basic_data.getText().trim().equals("")) {
					MessageBoxShow msgbox = new MessageBoxShow("您输入的基本数据不能为空!",
					"提示");
					msgbox.start();
				} else {
					String[] basic_data_temp = basic_data.getText().split(",");
					int basic_data_static[] = new int[basic_data_temp.length];
					for (int i = 0; i < basic_data_temp.length; i++) {
						System.out.println("基本数据为:" + basic_data_temp[i]);
						basic_data_static[i] = Integer
						.parseInt(basic_data_temp[i]);
					}

					CalculateData(sum_data_in, basic_data_static);
				}
			}
		});
		button.setText("提交数据");
		button.setBounds(78, 184, 87, 23);

		final Group group = new Group(this, SWT.NONE);
		group.setText("基本数据录入");
		group.setBounds(10, 12, 616, 154);

		sum_data = new Text(group, SWT.BORDER);
		sum_data.setBounds(10, 41, 88, 20);

		final Label label = new Label(group, SWT.NONE);
		label.setText("请输入总数:");
		label.setBounds(10, 20, 80, 15);

		final Label label_1 = new Label(group, SWT.SEPARATOR | SWT.HORIZONTAL);
		label_1.setBounds(10, 67, 596, 15);

		final Label label_2 = new Label(group, SWT.NONE);
		label_2.setText("请输入基本数据:");
		label_2.setBounds(10, 88, 96, 13);

		basic_data = new Text(group, SWT.BORDER);
		basic_data.setBounds(10, 107, 596, 20);

		final Label label_4 = new Label(group, SWT.NONE);
		label_4.setForeground(SWTResourceManager.getColor(255, 0, 0));
		label_4.setText("(提示:输入的数据中间以\",\"隔开)");
		label_4.setBounds(204, 133, 204, 15);

		final Group group_1 = new Group(this, SWT.NONE);
		group_1.setBounds(10, 213, 616, 235);

		final Label label_3 = new Label(group_1, SWT.NONE);
		label_3.setText("统计结果:");
		label_3.setBounds(10, 21, 60, 18);

		list = new List(group_1, SWT.V_SCROLL | SWT.BORDER | SWT.H_SCROLL);
		list.setBounds(10, 45, 596, 180);

		result = new Label(group_1, SWT.NONE);
		result.setForeground(SWTResourceManager.getColor(255, 0, 0));
		result.setBounds(76, 21, 43, 13);

		final Button button_1 = new Button(this, SWT.NONE);
		button_1.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				list.removeAll();
			}
		});
		button_1.setText("清空结果");
		button_1.setBounds(481, 184, 81, 23);

		final Label label_5 = new Label(this, SWT.NONE);
		label_5.setForeground(SWTResourceManager.getColor(0, 0, 255));
		label_5.setText("2008-12-05 Cluck.All right reserved");
		label_5.setBounds(245, 454, 176, 13);

		final Menu menu = new Menu(this, SWT.BAR);
		setMenuBar(menu);

		final MenuItem menuItem_1 = new MenuItem(menu, SWT.CASCADE);
		menuItem_1.setText("系统");

		final Menu menu_1 = new Menu(menuItem_1);
		menuItem_1.setMenu(menu_1);

		final MenuItem menuItem_2 = new MenuItem(menu_1, SWT.NONE);
		menuItem_2.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				display.dispose();
			}
		});
		menuItem_2.setText("退出系统");

		final MenuItem menuItem = new MenuItem(menu, SWT.CASCADE);
		menuItem.setText("帮助");

		final Menu menu_2 = new Menu(menuItem);
		menuItem.setMenu(menu_2);

		final MenuItem menuItem_3 = new MenuItem(menu_2, SWT.NONE);
		menuItem_3.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				MessageBoxShow msgbox = new MessageBoxShow("用于统计数据!",
				"提示");
				msgbox.start();
			}
		});
		menuItem_3.setText("关于static");

	}

	// 对基本数据进行排列组合计算
	public void CalculateData(int sumdata_in, int[] basicdata_in) {

		System.out.println("对已选数组进行组合:C");
		Combination intCombination1 = new Combination(basicdata_in.length);
		while (intCombination1.hasMore()) {

			int sum = 0;
			int[] index = intCombination1.getNext();
			for (int i = 0; i < basicdata_in.length; i++) {
				if (index[i] != 0) {
					sum += basicdata_in[index[i] * i];
				}
			}
			if (sum == sumdata_in) {
				StringBuffer tempdata = new StringBuffer();
				;
				for (int i = 0; i < basicdata_in.length; i++) {
					if (index[i] != 0) {
						tempdata.append(" "
								+ String.valueOf(basicdata_in[index[i] * i]));
						System.out.print(basicdata_in[index[i] * i] + "+");
					}
				}
				list.add(tempdata.toString());
			}
			System.out.println();
		}
		
		if(list.getItemCount()==0){
			MessageBoxShow msgbox = new MessageBoxShow("没有您所要的结果,请确认录入的基本数据是否正确!",
			"提示");
			msgbox.start();
		}
		result.setText(String.valueOf(list.getItemCount()));
	}

	protected void checkSubclass() {
		// Disable the check that prevents subclassing of SWT components
	}

}

⌨️ 快捷键说明

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