📄 winmain.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 + -