`

Demo001

 
阅读更多
package com.huawei.crs.dataswitch.ui;



import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.Border;

public class DataSwitchUI
{
	
	public static List<String> getModulecodes(final String str)
	{
		List<String> codes = new ArrayList<String>();
		char[] charArray = str.toCharArray();
		
		StringBuffer code = new StringBuffer();
		boolean outCode = true;
		for(char ch : charArray)
		{
			if(outCode)
			{
				if((ch == 'M' || ch == 'U' || ch == 'R' || ch == 'm' || ch == 'u' || ch == 'r'))
				{
					outCode = false;
					code.append(ch);
				}
				else
				{
					
				}
				
			}else
			{
				if(ch == 'W' || ch == 'w' || ('0' <= ch && ch <= '9'))
				{
					code.append(ch);
				}else
				{
					outCode = true;
					codes.add(new String(code.toString()));
					code.delete(0, code.length());
					if((ch == 'M' || ch == 'U' || ch == 'R' || ch == 'm' || ch == 'u' || ch == 'r'))
					{
						outCode = false;
						code.append(ch);
					}
				}
			}
			
			
			
//		    if(!inCode && (ch == 'M' || ch == 'U' || ch == 'R' || ch == 'm' || ch == 'u' || ch == 'r'))
//		    {
//		    	inCode = true;
//		    	code.append(ch);
//		    }
//		    else if(inCode && (ch == 'W' || ch == 'w' || ('0' <= ch && ch <= '9')))
//		    {
//		    	code.append(ch);
//		    }
		}
		
		return codes;
	}
	
	public static void main(String[] args)
	{

    	//获取屏幕尺寸
    	Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
    	
    	try
		{
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e1)
		{
			e1.printStackTrace();
		} catch (InstantiationException e1)
		{
			e1.printStackTrace();
		} catch (IllegalAccessException e1)
		{
			e1.printStackTrace();
		} catch (UnsupportedLookAndFeelException e1)
		{
			e1.printStackTrace();
		}
		
    	final JFrame jFrame = new JFrame("数据切换SQL脚本生成工具");
		Image image = null;
		
		try
		{
			image = ImageIO.read(new FileInputStream("img/logo.jpg"));
		} 
		catch (FileNotFoundException e)
		{
			JOptionPane.showMessageDialog(jFrame,"图片Logo没有找到 !","警告信息",JOptionPane.WARNING_MESSAGE);
			//System.exit(0);
		} 
		catch (IOException e)
		{
			JOptionPane.showMessageDialog(jFrame,"读取文件异常 !","警告信息",JOptionPane.WARNING_MESSAGE);
			//System.exit(0);
		}  

        jFrame.setIconImage(image);
    	Container container = jFrame.getContentPane();
    	container.setLayout(null);

		final JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 10, 770, 180);
		scrollPane.setWheelScrollingEnabled(true);
		scrollPane.setBorder(BorderFactory.createTitledBorder("信息栏"));
		container.add(scrollPane);
    	
    	
		final JTextArea resultTextArea = new JTextArea();
		
		Color color = new Color( 255, 255, 255);
		Color selectedColor = new Color( 0, 255, 0);
		
		Border border = BorderFactory.createLineBorder(Color.black);
		//border = BorderFactory.createLoweredBevelBorder();
		//border = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
		//border = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
		//border = BorderFactory.createRaisedBevelBorder();
		
		resultTextArea.setBorder(border);
		resultTextArea.setBackground(color);
		resultTextArea.setSelectedTextColor(selectedColor);
		resultTextArea.setText(
				"\n\t数据切换SQL脚本生成工具说明: " +
				"\n\t\t\t 待补充");
		
		resultTextArea.setEditable(false);
		scrollPane.setViewportView(resultTextArea);
		
		
		JPanel comparePane = new JPanel();
		comparePane.setLayout(null);
		comparePane.setBounds(10, 200, 770, 120);
		comparePane.setBorder(BorderFactory.createTitledBorder("生成SQL脚本文件"));
		container.add(comparePane);
		
		
		JLabel expectLabel = new JLabel("模  块:");
		expectLabel.setBounds(60, 40, 80, 26);
		comparePane.add(expectLabel);
		
		final JTextField expectTextField = new JTextField();
		expectTextField.setBounds(120, 40, 220, 26);
		comparePane.add(expectTextField);

		
		expectTextField.addKeyListener(new KeyAdapter(){

			@Override
			public void keyReleased(KeyEvent e) {
				StringBuffer sb = new StringBuffer("\t需要处理的模块:\n");
//				sb.append("");
				String content = expectTextField.getText();
				
				int len = 80;
				int i = 0;
				do
				{
					sb.append("\t");
					sb.append(content.substring(i * len, Math.min((i + 1) * len, content.length())));
					sb.append("\n");
					i ++;
				}while(len * i  <= content.length());
					
				resultTextArea.setText(sb.toString());
			}
		});
		
		
		JLabel actualLabel = new JLabel("文  件:");
		actualLabel.setBounds(390, 40, 80, 26);
		comparePane.add(actualLabel);
		
		final JTextField actualTextField = new JTextField();
		actualTextField.setBounds(450, 40, 200, 26);
		comparePane.add(actualTextField);
		
    	
		JButton actualButton = new JButton("...");
		actualButton.setBounds(650, 40, 20, 26);
		comparePane.add(actualButton);
		actualButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser jFileChooser = new JFileChooser();
				 int returnVal = jFileChooser.showSaveDialog(jFrame); 
	             if (returnVal == JFileChooser.APPROVE_OPTION) 
	             { 
	                 File file = jFileChooser.getSelectedFile();               
	                 actualTextField.setText(file.getAbsolutePath());
	             }
			}
		});
		
		JButton compareButton = new JButton("生成脚本");
		compareButton.setBounds(590, 80, 80, 26);
		comparePane.add(compareButton);
		compareButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				String expaceFile = expectTextField.getText();
				String actualFile = actualTextField.getText();
				if(null == expaceFile || "".equals(expaceFile))
				{
					JOptionPane.showMessageDialog(jFrame,"预期文件不能为空!","警告信息",JOptionPane.WARNING_MESSAGE);
				}
				else if(null == actualFile || "".equals(actualFile))
				{
					JOptionPane.showMessageDialog(jFrame,"实际文件不能为空!","警告信息",JOptionPane.WARNING_MESSAGE);
				}
				else
				{
					
				}
			}
		});
		
		
		JPanel sortPane = new JPanel();
		sortPane.setLayout(null);
		sortPane.setBounds(10, 330, 770, 120);
		sortPane.setBorder(BorderFactory.createTitledBorder("执行SQL脚本文件"));
		container.add(sortPane);
    	
		JLabel inputLabel = new JLabel("文  件:");
		inputLabel.setBounds(60, 40, 80, 26);
		sortPane.add(inputLabel);
		
		final JTextField inputTextField = new JTextField();
		inputTextField.setBounds(120, 40, 200, 26);
		sortPane.add(inputTextField);
		
		JButton inputButton = new JButton("...");
		inputButton.setBounds(320, 40, 20, 26);
		sortPane.add(inputButton);
		inputButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				JFileChooser jFileChooser = new JFileChooser();
				 int returnVal = jFileChooser.showOpenDialog(jFrame); 
	             if (returnVal == JFileChooser.APPROVE_OPTION) 
	             { 
	                 File file = jFileChooser.getSelectedFile();               
	                 inputTextField.setText(file.getAbsolutePath());
	             }
			}
		});
    	
		
		
		
		
		JButton sortButton = new JButton("执行脚本");
		sortButton.setBounds(388, 40, 80, 26);//590, 80, 80, 26
		sortPane.add(sortButton);
		sortButton.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e)
			{
				String inputFile = inputTextField.getText();
				String outputFile = inputTextField.getText();
				String sequenceFlag = "";
				if(null == inputFile || "".equals(inputFile))
				{
					JOptionPane.showMessageDialog(jFrame,"输入文件不能为空!","警告信息",JOptionPane.WARNING_MESSAGE);
				}
				else if(null == outputFile || "".equals(outputFile))
				{
					JOptionPane.showMessageDialog(jFrame,"输出文件不能为空!","警告信息",JOptionPane.WARNING_MESSAGE);
				}
				else
				{
                   
				}
			}
		});
		
    	int width = 800;
    	int height = (int)(width * 0.618);
		jFrame.setSize(width,height);
		int x = (dimension.width - jFrame.getSize().width)/2;
		int y = (dimension.height - jFrame.getSize().height)/2;
		jFrame.setLocation(x, y);
		jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		jFrame.setResizable(false);
		jFrame.setVisible(true);
	}
}

 

 

分享到:
评论

相关推荐

    MvcDemo001.zip

    【MvcDemo001.zip】是一个包含MVC(Model-View-Controller)框架基础应用的压缩包文件。在本文中,我们将深入探讨MVC模式、ASP.NET MVC框架以及如何通过这个压缩包中的示例来学习和理解MVC设计模式。 **MVC模式介绍...

    demo001-ocr识别软件

    【标题】"demo001-OCR识别软件"是一款针对图像文字识别的实用工具,它集成了多种核心技术,旨在帮助用户高效地从图片中提取文本信息。OCR(Optical Character Recognition,光学字符识别)技术是该软件的核心,通过...

    JdbcDemo001.zip

    在"JdbcDemo001.zip"这个压缩包中,我们可以预见到一个简单的JDBC演示程序,通过这个示例,我们将深入理解JDBC的基础知识及其在实际开发中的应用。 1. **JDBC驱动类型** JDBC驱动分为四种类型:Type 1、Type 2、...

    Demo001.rar_三维重建 c_三维重建代码_医学三维重建_数字人_重建

    本文将深入探讨“Demo001.rar”压缩包中所包含的“三维重建 c_三维重建代码_医学三维重建_数字人_重建”相关主题。 三维重建是将二维图像或数据转换为三维模型的过程,这在医学成像中具有广泛的应用。通过CT...

    MVVMDemo001

    **MVVM 模式详解** MVVM(Model-View-ViewModel)是一种软件设计模式,...MVVMDemo001项目是一个很好的学习实例,它展示了如何在实际应用中运用MVVM模式。通过分析和研究这个示例,你可以更好地理解和掌握MVVM的精髓。

    [Demo 001] HP soket 最简单的CS push模型.

    国内优秀的开源开发框架HP-Socket的简单使用,这是一个最简单的push模型,非常适合初学者。HP-Socket目前已经支持window和linux平台,并支持C,C++,易语言等多种语言。开发交流群:44636872。欢迎入群交流学习

    CEF-CEFDemo001:你好,世界

    这个"CEF-CEFDemo001: 你好,世界"的项目很可能是用来展示如何在C#应用程序中使用CEF来创建一个基本的浏览器界面。 CEF的工作原理是将Google Chrome的渲染引擎和JavaScript引擎集成到开发者的应用中,使得开发者...

    demo1.htmldemo1.html

    demo1.htmldemo1.html

    JMF_demo.rar

    `Demo001.java` 是一个Java源代码文件,提供了JMF的基本用法示例。通过这个文件,开发者可以学习如何在Java程序中集成JMF,加载媒体文件,以及控制播放、暂停、停止等操作。源代码中的注释通常会解释每一步的目的和...

    21-08-03_Fluentmigration.Demo(001_自动生成源示例所定义的数据库及其表 ).rar

    例如,在提供的文件`21-08-03_Fluentmigration.Demo(001_自动生成源示例所定义的数据库及其表)`中,可能包含了一个或多个此类迁移脚本,它们定义了数据库的初始结构或某个特定版本的更新。 在这些脚本中,开发者...

    STM8S001_DEMO.rar

    为防止STM8S001单片机8脚被配置成输出导致芯片不能下载程序,锁死的模板程序,设备上电后进行一段延时后再进行其他操作,使用定时器2备注一个单位为1ms的延时函数,程序默认开机延时5s。当8脚被设置为输出后,需要...

    前端web select 多层级选择。利用 ztree.js 实现下拉框的多选和单选demo.有兴趣的可以了解一下。

    在 `demo001` 文件中,你可能会找到具体的 HTML、CSS、JavaScript 代码示例,帮助你更好地理解和应用这个功能。记住,实践是检验真理的唯一标准,动手尝试并根据需求进行调整,才能真正掌握这个技术。 总的来说,...

    hibernateDemo_001

    《Hibernate实战:hibernateDemo_001项目解析》 Hibernate是一款强大的Java持久层框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑的实现,而非繁琐的SQL语句编写。在这个名为"hibernateDemo_001...

    QT/C++学习指南 - 实战篇

    1. **模盘游戏(Demo001)**:这是一个基础的桌面游戏,用于演示QT事件处理和图形用户界面(GUI)的设计。模盘游戏通常涉及随机数生成和简单的用户交互,这可以帮助学习者理解QT中的信号与槽机制,以及如何利用C++处理...

    华为存储模拟器OceanStor DeviceManger Demo汇总集.rar

    OceanStor 18500 V3&18800 V3 高端存储系统 V300R006C00 Demo安装包与使用指导书 OceanStor 2200 V3&2600 V3 存储系统 V300R006C00 Demo安装包与使用指导书 OceanStor 5300 V3&5500 V3&5600 V3&5800 V3&6800 V3 ...

    HT32_APPFW_1xxxx_RS485_Demo_v001_1040_HT32盛群RS485通訊程式_DEMO_

    《盛群HT32 RS485通讯程序DEMO详解》 在当今的嵌入式系统设计中,通信协议扮演着至关重要的角色。本篇将深入解析“HT32_APPFW_1xxxx_RS485_Demo_v001_1040_HT32盛群RS485通訊程式_DEMO_”这一资源包,它是一款专门...

    【Excel动态图表】--demo_001

    学者应有独立思考、独到见解和独立的人格,而不是喋喋不休、陈词滥调的自我循环。“一分耕耘一分收获”,然而对于真正的学者而言,可能是十分耕耘才会有一分收获。

    mybatis多对多配置

    10. **数据库设计**:`mybatisDemo001数据库`文件可能包含了实现多对多关系所需的数据库表结构,包括主表、从表和中间关联表。分析这些表可以帮助理解MyBatis是如何根据数据库设计来处理多对多关系的。 理解并正确...

    STM8S Demo

    STM8S Demo是一个基于STM8微控制器的演示程序,涵盖了STM8S10X和STM8S20X系列芯片的应用实例。STM8是意法半导体(STMicroelectronics)推出的一系列8位微控制器,以其高效能、低功耗和丰富的片上功能集而受到广泛...

    jQuery入门demo【001】

    这个“jQuery入门demo【001】”将带你初次接触这个强大的工具,帮助你理解其基本用法和优势。 ### 1. jQuery核心概念 - **选择器**: jQuery的核心功能之一就是选择DOM元素。它支持CSS选择器,如`$("#id")`用于选取...

Global site tag (gtag.js) - Google Analytics