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

📄 edit.java

📁 针对IBM的消息中间件MQ编写的程序
💻 JAVA
字号:
package com.face;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.jface.dialogs.*;

import com.mq.MQOperator;

public class Edit implements IMQDisplay {
	
	final private IMQDisplay listener;
	
	final public Text text_queueManager;
	final private Text text_checkMessage;
	final private Text text_info;
	
	private String QMgrName = null;
	private String QName = null;
	
	MQThread mqth = new MQThread(this);
	Display display;
	Shell shell;
	
	Edit() {
		
		listener = this;
		
		display = Display.getDefault();
		shell = new Shell();
		shell.setSize(411, 438);
		shell.setText("MQApi Application");
		//

		shell.open();

		final TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
		tabFolder.setBounds(0, 0, 403, 406);

		final TabItem tabItem = new TabItem(tabFolder, SWT.NONE);
		tabItem.setText("本地传输");

		final Composite composite = new Composite(tabFolder, SWT.NONE);
		tabItem.setControl(composite);
		
		//显示校验信息,如"输入队列不正确"或"输入有效"
		text_checkMessage = new Text(composite, SWT.BORDER|SWT.READ_ONLY);
		text_checkMessage.setBounds(13, 109, 372, 20);
		
		//输入队列管理器
		text_queueManager = new Text(composite, SWT.BORDER);
		text_queueManager.setBounds(13, 73, 246, 19);

		//开始按钮
		final Button startButton = new Button(composite, SWT.BORDER);
        //暂停按钮
		final Button pauseButton = new Button(composite, SWT.BORDER);
		
		startButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				text_checkMessage.setText("");
				if(mqth.isAlive()) {
					//恢复线程
					mqth.resume();
				} else {
					//开始线程
					mqth.start();
				}
				startButton.setEnabled(false);
				pauseButton.setEnabled(true);
				println(3, "程序已启动!");
			}
		});
		startButton.setText("Start");
		startButton.setBounds(13, 10, 120, 30);

		
		pauseButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				text_checkMessage.setText("");
				mqth.mysuspend();
				startButton.setEnabled(true);
				pauseButton.setEnabled(false);
				println(3, "程序已暂停!");
			}
		});
		pauseButton.setText("Pause");
		pauseButton.setBounds(139, 10, 120, 30);

		//退出按钮
		final Button exitButton = new Button(composite, SWT.BORDER);
		exitButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				mqth.stop();
				try {
					mqth.join();
				} catch(Exception ee) {					
				}
				System.exit(0);
			}
		});
		exitButton.setText("Exit");
		exitButton.setBounds(265, 10, 120, 30);

		//
		final Label queueManagerLabel = new Label(composite, SWT.NONE);
		queueManagerLabel.setText("Queue Manager:");
		queueManagerLabel.setBounds(13, 55, 120, 12);
		
        //选择队列
		final Combo queue = new Combo(composite, SWT.READ_ONLY);
		queue.setBounds(13, 155, 372, 20);

		//校验队列管理器的名称是否存在
		final Button checkButton = new Button(composite, SWT.BORDER);
		checkButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {				
				text_checkMessage.setText("");
				mqth.setComCode(0);
				mqth.setReaCode(0);
				mqth.setQM_NAME(text_queueManager.getText());
				QMgrName = mqth.getQM_NAME();
				
				if(QMgrName == null || QMgrName.equals("")) {
					
					MessageBox messageBox = new MessageBox(shell, SWT.ICON_ERROR);
					messageBox.setMessage("请输入队列管理器名称!");
					messageBox.open();
					
					println(3, "请输入队列管理器名称");
					return;
				} else {					
					while(!mqth.setrunflag(MQThread.CONN_QMANAGER)) {
						try {
							Thread.sleep(500);
						} catch(Exception ex) {							
						}
					}
					while(mqth.getrunflag() == MQThread.CONN_QMANAGER) {
						try {
							Thread.sleep(500);
						} catch(Exception ex) {							
						}
					}
					text_info.append(mqth.getreturn_message() + "\r\n");
					if(mqth.getComCode() == 0 || mqth.getReaCode() == 0) {
						while(!mqth.setrunflag(MQThread.LIST_QUEUE)) {
							try {
								Thread.sleep(500);
							} catch(Exception ex) {							
							}
						}
						while(mqth.getrunflag() == MQThread.LIST_QUEUE) {
							try {
								Thread.sleep(500);
							} catch(Exception ex) {							
							}
						}
						//text_info.setText("");
						text_info.append(mqth.getreturn_message() + "\r\n");
						if((!mqth.getQ_NAMES().equals("")) && (mqth.getQ_NAMES() != null)) {
							queue.setItems(mqth.getQ_NAMES());
							queue.select(0);
						}
					}																			
				}
			}
		});
		checkButton.setText("Check");
		checkButton.setBounds(265, 73, 120, 30);		
		
		//
		final Label queueLabel = new Label(composite, SWT.NONE);
		queueLabel.setText("Queue:");
		queueLabel.setBounds(13, 135, 120, 14);
		
		//提示信息
		text_info = new Text(composite, SWT.BORDER|SWT.V_SCROLL|SWT.WRAP|SWT.READ_ONLY);
		text_info.setBounds(13, 181, 372, 157);

		//写入队列
		final Button writeQButton = new Button(composite, SWT.BORDER);
		writeQButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				if(QMgrName == null || QMgrName.equals("")) {
					
					MessageBox messageBox = new MessageBox(shell, SWT.ICON_ERROR);
					messageBox.setMessage("请输入队列管理器名称!");
					messageBox.open();
					
					text_checkMessage.setText("");
					println(3, "请输入队列管理器名称");
					return;
				} else {
					mqth.setQM_NAME(QMgrName);
					mqth.setQ_NAME(queue.getText());
									
					String message = null;
					SendMessageDialog sendMessageDialog = new SendMessageDialog(shell);
					//是否单击“确定”按钮
					if(sendMessageDialog.open() == IDialogConstants.OK_ID) {
						message = sendMessageDialog.getTextValue(); //取值	
						mqth.setOutMessage(message);
                        //等待到最后一个命令结束为止
						while(!mqth.setrunflag(MQThread.PUT_MESSAGE)) {
							try {
								Thread.sleep(500);
							} catch(Exception ex) {					
							}
						}
						//等待这个命令结束
						while(mqth.getrunflag() == MQThread.PUT_MESSAGE) {
							try {
								Thread.sleep(500);
							} catch(Exception ex) {						
							}
						}
						text_info.append(mqth.getreturn_message() + "\r\n");
					}
					
				}				
			}
		});
		writeQButton.setText("Write Q");
		writeQButton.setBounds(139, 344, 120, 30);

		//从队列读取
		final Button readQButton = new Button(composite, SWT.BORDER);
		readQButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				if(QMgrName == null || QMgrName.equals("")) {
					
					MessageBox messageBox = new MessageBox(shell, SWT.ICON_ERROR);
					messageBox.setMessage("请输入队列管理器名称!");
					messageBox.open();
					
					text_checkMessage.setText("");
					println(3, "请输入队列管理器名称");
					return;
				} else {
					
					mqth.setQM_NAME(QMgrName);
					mqth.setQ_NAME(queue.getText());
					//GetMessageDialog getMessageDialog = new GetMessageDialog(shell);
					//getMessageDialog.open();
					while(!mqth.setrunflag(MQThread.GET_MESSAGE)) {
						try {
							Thread.sleep(500);
						} catch(Exception ex) {						
						}
					}
					while(mqth.getrunflag() == MQThread.GET_MESSAGE) {
						try {
							Thread.sleep(500);
						} catch(Exception ex) {						
						}
					}
										
					text_info.append(mqth.getreturn_message() + "\r\n");
				}				
			}
		});
		readQButton.setText("Read Q");
		readQButton.setBounds(265, 344, 120, 30);

		final TabItem tabItem_1 = new TabItem(tabFolder, SWT.NONE);
		tabItem_1.setText("远程传输");

		final Composite composite_1 = new Composite(tabFolder, SWT.NONE);
		tabItem_1.setControl(composite_1);
		shell.layout();
		while (!shell.isDisposed()) {
			if(!display.readAndDispatch())
				display.sleep();
		}
		//display.dispose();
	}

	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String[] args) {
		
		new Edit();
	}
	
	class show implements Runnable {
		private String msg;
		private int ch;
		
		show(int channel, String message) {
			this.ch = channel;
			this.msg = message;
		}
		
		public void run() {
			if(ch == 1) {
				text_queueManager.append(msg);
			} else if(ch == 2) {
				text_info.append(msg);
			} else if(ch == 3) {
				text_checkMessage.append(msg);
			}
		}
	}
	
	
	
	//输出语句
	public void print(int channel, String message) {
		display.asyncExec(new show(channel, message));
	}
	
	public void println(int channel, String message) {
		display.asyncExec(new show(channel, message + "\r\n"));
	}
	

}

⌨️ 快捷键说明

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