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】是一个包含MVC(Model-View-Controller)框架基础应用的压缩包文件。在本文中,我们将深入探讨MVC模式、ASP.NET MVC框架以及如何通过这个压缩包中的示例来学习和理解MVC设计模式。 **MVC模式介绍...
【标题】"demo001-OCR识别软件"是一款针对图像文字识别的实用工具,它集成了多种核心技术,旨在帮助用户高效地从图片中提取文本信息。OCR(Optical Character Recognition,光学字符识别)技术是该软件的核心,通过...
在"JdbcDemo001.zip"这个压缩包中,我们可以预见到一个简单的JDBC演示程序,通过这个示例,我们将深入理解JDBC的基础知识及其在实际开发中的应用。 1. **JDBC驱动类型** JDBC驱动分为四种类型:Type 1、Type 2、...
本文将深入探讨“Demo001.rar”压缩包中所包含的“三维重建 c_三维重建代码_医学三维重建_数字人_重建”相关主题。 三维重建是将二维图像或数据转换为三维模型的过程,这在医学成像中具有广泛的应用。通过CT...
**MVVM 模式详解** MVVM(Model-View-ViewModel)是一种软件设计模式,...MVVMDemo001项目是一个很好的学习实例,它展示了如何在实际应用中运用MVVM模式。通过分析和研究这个示例,你可以更好地理解和掌握MVVM的精髓。
国内优秀的开源开发框架HP-Socket的简单使用,这是一个最简单的push模型,非常适合初学者。HP-Socket目前已经支持window和linux平台,并支持C,C++,易语言等多种语言。开发交流群:44636872。欢迎入群交流学习
这个"CEF-CEFDemo001: 你好,世界"的项目很可能是用来展示如何在C#应用程序中使用CEF来创建一个基本的浏览器界面。 CEF的工作原理是将Google Chrome的渲染引擎和JavaScript引擎集成到开发者的应用中,使得开发者...
demo1.htmldemo1.html
`Demo001.java` 是一个Java源代码文件,提供了JMF的基本用法示例。通过这个文件,开发者可以学习如何在Java程序中集成JMF,加载媒体文件,以及控制播放、暂停、停止等操作。源代码中的注释通常会解释每一步的目的和...
例如,在提供的文件`21-08-03_Fluentmigration.Demo(001_自动生成源示例所定义的数据库及其表)`中,可能包含了一个或多个此类迁移脚本,它们定义了数据库的初始结构或某个特定版本的更新。 在这些脚本中,开发者...
为防止STM8S001单片机8脚被配置成输出导致芯片不能下载程序,锁死的模板程序,设备上电后进行一段延时后再进行其他操作,使用定时器2备注一个单位为1ms的延时函数,程序默认开机延时5s。当8脚被设置为输出后,需要...
在 `demo001` 文件中,你可能会找到具体的 HTML、CSS、JavaScript 代码示例,帮助你更好地理解和应用这个功能。记住,实践是检验真理的唯一标准,动手尝试并根据需求进行调整,才能真正掌握这个技术。 总的来说,...
《Hibernate实战:hibernateDemo_001项目解析》 Hibernate是一款强大的Java持久层框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑的实现,而非繁琐的SQL语句编写。在这个名为"hibernateDemo_001...
1. **模盘游戏(Demo001)**:这是一个基础的桌面游戏,用于演示QT事件处理和图形用户界面(GUI)的设计。模盘游戏通常涉及随机数生成和简单的用户交互,这可以帮助学习者理解QT中的信号与槽机制,以及如何利用C++处理...
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 RS485通讯程序DEMO详解》 在当今的嵌入式系统设计中,通信协议扮演着至关重要的角色。本篇将深入解析“HT32_APPFW_1xxxx_RS485_Demo_v001_1040_HT32盛群RS485通訊程式_DEMO_”这一资源包,它是一款专门...
学者应有独立思考、独到见解和独立的人格,而不是喋喋不休、陈词滥调的自我循环。“一分耕耘一分收获”,然而对于真正的学者而言,可能是十分耕耘才会有一分收获。
10. **数据库设计**:`mybatisDemo001数据库`文件可能包含了实现多对多关系所需的数据库表结构,包括主表、从表和中间关联表。分析这些表可以帮助理解MyBatis是如何根据数据库设计来处理多对多关系的。 理解并正确...
STM8S Demo是一个基于STM8微控制器的演示程序,涵盖了STM8S10X和STM8S20X系列芯片的应用实例。STM8是意法半导体(STMicroelectronics)推出的一系列8位微控制器,以其高效能、低功耗和丰富的片上功能集而受到广泛...
这个“jQuery入门demo【001】”将带你初次接触这个强大的工具,帮助你理解其基本用法和优势。 ### 1. jQuery核心概念 - **选择器**: jQuery的核心功能之一就是选择DOM元素。它支持CSS选择器,如`$("#id")`用于选取...