zoukankan      html  css  js  c++  java
  • Java Swing客户端小项目

    记录一下两个用java swing写的客户端。

    项目1:  

        关键词:swing  jtable

        代码如下:

        1、主类:

        

    package com.my.agent.client;
    
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.IOException;
    
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.filechooser.FileNameExtensionFilter;
    
    public class AgentClinet implements ActionListener{
        
        JTextField textField = null;
        MyTabelModel tm = null;
        JFrame jframe = null;
        public AgentClinet(){
            jframe = new JFrame("");
            jframe.setSize(600, 400);
            jframe.setBackground(Color.BLUE);
            jframe.setResizable(false);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setAlwaysOnTop(true);
            jframe.setLayout(new FlowLayout());
            
            //上面按钮
            JPanel jpanel = new JPanel();
            JButton button = new JButton("添加信息");
            button.addActionListener(this);
            jpanel.add(button);
            button = new JButton("一键启动");
            button.addActionListener(this);
            jpanel.add(button);
            button = new JButton("一键停止");
            button.addActionListener(this);
            jpanel.add(button);        
            jframe.add(jpanel);
            
            //数据展示
            tm = new MyTabelModel(null);
            final JTable table = new JTable(tm);
            table.setPreferredScrollableViewportSize(new Dimension(550, 220));
            JScrollPane s = new JScrollPane(table);
            jframe.add(s);
            
            //下层按钮
            jpanel = new JPanel(new FlowLayout(0));
            jpanel.setPreferredSize(new Dimension(580, 30));
            JLabel label = new JLabel("单个代理home:");
            textField = new JTextField(30);
            jpanel.add(label);
            jpanel.add(textField);
            
            button = new JButton("启动");
            button.addActionListener(this);
            jpanel.add(button);
            button = new JButton("停止");
            button.addActionListener(this);
            jpanel.add(button);
            
            jframe.add(jpanel);
            
            label = new JLabel("删除功能暂不支持");
            jframe.add(label);
            jframe.setVisible(true);
            
            table.addMouseListener(new MouseListener() {
                @Override
                public void mouseClicked(MouseEvent e) {
                      //得到选中的行列的索引值
                       int r= table.getSelectedRow();
                       //int c= table.getSelectedColumn();
                       //得到选中的单元格的值,表格中都是字符串
                       Object value= table.getValueAt(r, 2);
                       textField.setText(value.toString());
                      /* String info=r+"行"+c+"列值 : "+value.toString();
                       System.out.println(info);*/
                }
                @Override
                public void mouseReleased(MouseEvent arg0) {            
                }
                @Override
                public void mousePressed(MouseEvent arg0) {
                }
                @Override
                public void mouseExited(MouseEvent arg0) {
                }
                @Override
                public void mouseEntered(MouseEvent arg0) {
                }
            });
        }
        
        @Override
        public void actionPerformed(ActionEvent e) {
            JButton btn = (JButton)e.getSource();
            try {
                if(btn.getText().equals("添加信息")){
                    JFileChooser fileChooser = new JFileChooser("目录选择:");
                    fileChooser.setFileFilter(new FileNameExtensionFilter("", "bat"));
                    fileChooser.setAcceptAllFileFilterUsed(true);
                    fileChooser.showOpenDialog(jframe);
                    if(null != fileChooser.getSelectedFile() ){
                        String filePath = fileChooser.getSelectedFile().getAbsolutePath();
                        //代理目录
                        String str = filePath.substring(0,filePath.lastIndexOf("\"));
                        if(MyDao.addLineData(null, str)){
                            jframe.dispose();
                            new AgentClinet();
                        };
                    }
                    
                }else if(btn.getText().equals("一键启动")){
                    String[][] model = tm.getModel();
                    for (int i = 0; i < model.length; i++) {
                        Runtime.getRuntime().exec("cmd /c start  "+model[i][2]+"\startup.bat");
                    }
                }else if(btn.getText().equals("一键停止")){
                    String[][] model = tm.getModel();
                    for (int i = 0; i < model.length; i++) {
                        Runtime.getRuntime().exec("cmd /c start  "+model[i][2]+"\stop.bat");
                    }
                }else if(btn.getText().equals("启动")){
                    Runtime.getRuntime().exec("cmd /c start  "+textField.getText()+"\startup.bat");
                }else if(btn.getText().equals("停止")){
                    Runtime.getRuntime().exec("cmd /c start  "+textField.getText()+"\stop.bat");
                }
            } catch (IOException e1) {
                System.exit(0);
            }
        }
        
        public static void main(String[] args) {
            new AgentClinet();
        }
    
    }

     MyTabelModel.java

    package com.my.agent.client;
    
    import javax.swing.table.AbstractTableModel;
    
    public class MyTabelModel extends AbstractTableModel{
    
        private static final long serialVersionUID = 1L;
    
        String[] tableHeader = new String[]{"序号","名称","HOME"};
        
        private String[][] model = null;
        
        public MyTabelModel(String path) {
            model = MyDao.getDataFromFile(path);
        }
        
        public String[][] getModel() {
            return model;
        }
    
        public void setModel(String[][] model) {
            this.model = model;
        }
    
    
    
        @Override
        public int getColumnCount() {
            return tableHeader.length;
        }
    
        @Override
        public int getRowCount() {
            return model.length;
        }
    
        @Override
        public Object getValueAt(int row, int col) {
            return model[row][col];
        }
        /**
         * 此方法返回col位置的列的名称
         */
        @Override
        public String getColumnName(int column) {
            return tableHeader[column];
        }
    
    }
    MyTabelModel.java

    数据来源,放到一个txt文件里面:

    package com.my.agent.client;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class MyDao {
    
        private static BufferedWriter bw;
    
        public static void main(String[] args) {
            getDataFromFile(null);
        }
        
        public static String[][] getDataFromFile(String dir){
            String agentsFile = "";
            if(null==dir || "".equals(dir)){
                dir =  System.getProperty("user.home");
            }
            File dirF = new File(dir);
            if(!dirF.isDirectory()){
                throw new RuntimeException("配置的地址不是一个目录");
            }else{
                agentsFile = dirF.getAbsolutePath()+"/agents.txt";
            }
            File file = new File(agentsFile);
            if(!file.exists()){
                try {
                    file.createNewFile();
                } catch (IOException e) {
                }
            }
            List<String> datas = getLineData(agentsFile);
            String[][] ret = new String[datas.size()][];
            for (int i = 0; i < datas.size(); i++) {
                String[] table = ((i+1)+"&"+datas.get(i).trim()).split("&");
                ret[i] = table;
            }
            /*
            for (int i = 0; i < ret.length; i++) {
                System.out.println(ret[i][0]+"=="+ret[i][1]+"==="+ret[i][2]);
            }
            */
            return ret;
        }
        
        public static List<String> getLineData(String path) {
            List<String> urls = new ArrayList<String>();
            try {
                FileReader reader = new FileReader(path);
                BufferedReader br = new BufferedReader(reader);
                String str = null;
                while ((str = br.readLine()) != null) {
                    if(str!=null && str.contains("&")){
                        urls.add(str);
                    }
                }
                br.close();
                reader.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return urls;
        }
        
        public static boolean addLineData(String filename,String filePath){
            if(filename==null){
                filename =  System.getProperty("user.home")+"\agents.txt";
            }
            String agentName = filePath.substring(filePath.lastIndexOf("\")+1);
            try {
                File file = new File(filename);
                if(!file.exists()){
                    file.createNewFile();
                }
                FileWriter fileWriter = new FileWriter(filename,true);
                bw = new BufferedWriter(fileWriter);
                bw.write(agentName+"&"+filePath);
                bw.newLine();
                bw.flush();
                bw.close();
            } catch (Throwable e) {
                //do noting
                return false;
            }
            return true;
        }
        
    }
    View Code

    以上是第一个小工具,只是用了txt文件进行数据存储,第二个客户端按数据源分为以下两种:

    1.查询MongoDB数据库:

    主类:

     package com.my.mssage.client;
    
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class MessageClient implements ActionListener{
    
        
        JFrame jframe = null;
        JTextField pathText = null;
        JTextField userNameText = null;
        JTextField pwdText = null;
        JTextArea textArea = null;
        JButton startBtn = null;
        JButton stopBtn = null;
        JTextField timeText = null;
        
        boolean timerRun = false;
        
        JLabel dateLabel = new JLabel("监控时间(-至今)");
        JTextField dateText = null;
        boolean dateshow = false;
        public MessageClient(){
            jframe = new JFrame("监控");
            jframe.setSize(600, 400);
            jframe.setBackground(Color.BLUE);
            jframe.setResizable(false);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setAlwaysOnTop(true);
            jframe.setLayout(new FlowLayout(0));
            jframe.getContentPane().add(new JLabel("数据库ip地址:"));
            pathText = new JTextField(10);
            pathText.setText("");
            jframe.getContentPane().add(pathText);
            jframe.getContentPane().add(new JLabel("端口:"));
            userNameText = new JTextField(10);
            jframe.getContentPane().add(userNameText);
            jframe.getContentPane().add(new JLabel("文档名称:"));
            pwdText = new JTextField(10);
            jframe.getContentPane().add(pwdText);
            jframe.getContentPane().add(new JLabel("刷新时间(秒):"));
            timeText = new JTextField(5);
            timeText.setText("300");
            jframe.getContentPane().add(timeText);
            
            dateText = new JTextField(10);
            dateText.setText(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
            jframe.getContentPane().add(dateLabel);
            jframe.getContentPane().add(dateText);
            dateLabel.setVisible(dateshow);
            dateText.setVisible(dateshow);
            
            JPanel panel = new JPanel(new FlowLayout(2));
            startBtn = new JButton("开始监控");
            startBtn.addActionListener(this);
            panel.add(startBtn);
            stopBtn = new JButton("停止监控");
            stopBtn.addActionListener(this);
            panel.add(stopBtn);
            jframe.add(panel);
            textArea = new JTextArea(18,53);
            JScrollPane scrollPane = new JScrollPane(textArea);
            jframe.add(scrollPane);
            
            timeText.addKeyListener(new KeyListener() {
                @Override
                public void keyTyped(KeyEvent e) {}
                @Override
                public void keyReleased(KeyEvent e) {}
                @Override
                public void keyPressed(KeyEvent e) {
                    if(e.getKeyCode() == KeyEvent.VK_F11){
                        dateshow = !dateshow;
                        dateLabel.setVisible(dateshow);
                        dateText.setVisible(dateshow);
                    }
                }
            });
            
            jframe.setVisible(true);
        }
        
        
        public static void main(String[] args) {
            new MessageClient();
        }
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
            JButton btn = (JButton)e.getSource();
            final Timer timer = new Timer();
            TimerTask task = new TimerTask() {
                @Override
                public void run() {
                    String startDate = null;
                    if(dateshow){
                        startDate = dateText.getText();
                    }
                    if(timerRun){
                        textArea.setText("开始监控:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"
    ");
                        List<WorkInfo> list = MongoDao.queryWorkitem(pathText.getText(),
                                userNameText.getText(), pwdText.getText(), startDate);
                        
                        for (WorkInfo workInfo : list) {
                            textArea.append(workInfo.getStopTime()+"======"+workInfo.getWorkName()+":"+workInfo.getWorkType()+":"+workInfo.getWorkState()+":"+workInfo.getStateDetail()+"
    ");
                            SoundPlay.playSound(workInfo.getWorkType());
                            try {
                                Thread.sleep(3000);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }else{
                        timer.cancel();
                        this.cancel();
                        textArea.setText("停止监控......");
                    }
                    System.gc();
                }
            };
            
            
            if(btn.getText().equals("开始监控")){
                timerRun = true;
                System.out.println(pathText.getText()+"=="+userNameText.getText()+"=="+pwdText.getText());
                timer.schedule(task,0, Long.parseLong(timeText.getText())*1000);
            }else if(btn.getText().equals("停止监控")){
                timerRun = false;
                System.out.println("stop......");
                task.cancel();
                timer.cancel();
            }else{
                System.out.println("......");
            }
            
            
        }
    }

    数据查询:

    package com.my.mssage.client;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    import org.bson.Document;
    
    import com.mongodb.BasicDBObject;
    import com.mongodb.DBObject;
    import com.mongodb.MongoClient;
    import com.mongodb.client.FindIterable;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoDatabase;
    
    public class MongoDao {
    
        
        
        public static void main(String[] args) {
            
        }
    
        public static List<WorkInfo> queryWorkitem(String ip, String port, String dbname,String startDate) {
            
            List<String> list = new ArrayList<String>();
            List<WorkInfo> workList = new ArrayList<WorkInfo>();
            MongoClient client = new MongoClient(ip,Integer.parseInt(port));
            MongoDatabase db = client.getDatabase(dbname);
            
            try {
                /*        
                MongoIterable<String> cos = db.listCollectionNames();
                for (String name : cos) {
                    System.out.println(name);
                }
                 */
                MongoCollection<Document> collection = db.getCollection("nSite.wf.workitems");
                if(startDate == null || "".equals(startDate)){
                    startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
                }
                BasicDBObject query = new BasicDBObject();
                query.put("state", "Exception");
                DBObject timeQuery = new BasicDBObject();
                timeQuery.put("$gt", new SimpleDateFormat("yyyy-MM-dd").parse(startDate));
                timeQuery.put("$lt", new Date());
                query.put("startTime", timeQuery);
                FindIterable<Document> doc = collection.find(query);
                
                int i = 0;
                
                for (Document document : doc) {
                    Date tempDate = document.getDate("stopTime");
                    String stateDetail = document.getString("stateDetails");
                    WorkInfo workInfo = new WorkInfo(document.getString("name"),
                            document.getString("activityDefineName"), "出错了");
                    workInfo.setStopTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tempDate));
                    workInfo.setStateDetail(stateDetail);
                    workList.add(workInfo);
                    i++;
                    list.add(document.get("name")+"=="+document.get("activityDefineName")+"==出错了");
                    System.out.println(document.get("name")+"=="+document.get("activityDefineName")+"==出错了");
                }
                System.out.println(i+"===="+list.size());
                
            } catch (Throwable e) {
                throw new RuntimeException(e.getMessage());
            }finally {
                client.close();
            }
            return workList;
        }
        
        
    }
    MongoDao.java

    2.查询Mysql数据库:

    主类:

    package com.my.mssage.client;
    
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class MysqlClient implements ActionListener{
        
        
        JFrame jframe = null;
        JTextField pathText = null;
        JTextField portText = null;
        JTextField userNameText = null;
        JTextField pwdText = null;
        JTextArea textArea = null;
        JButton startBtn = null;
        JButton stopBtn = null;
        JTextField timeText = null;
        
        boolean timerRun = false;
        
        JLabel dateLabel = new JLabel("监控时间(-至今)");
        JTextField dateText = null;
        boolean dateshow = false;
        
        public MysqlClient(){
            jframe = new JFrame("监控");
            jframe.setSize(600, 400);
            jframe.setBackground(Color.BLUE);
            jframe.setResizable(false);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setAlwaysOnTop(true);
            jframe.setLayout(new FlowLayout(0));
            jframe.getContentPane().add(new JLabel("db地址:端口:"));
            pathText = new JTextField(12);
            pathText.setText("");
            jframe.getContentPane().add(pathText);
            jframe.getContentPane().add(new JLabel("db名称:"));
            portText = new JTextField(5);
            portText.setText("");
            jframe.getContentPane().add(portText);
            jframe.getContentPane().add(new JLabel("db用户名:"));
            userNameText = new JTextField(5);
            jframe.getContentPane().add(userNameText);
            jframe.getContentPane().add(new JLabel("db密码:"));
            pwdText = new JTextField(5);
            jframe.getContentPane().add(pwdText);
            jframe.getContentPane().add(new JLabel("刷新时间(秒):"));
            timeText = new JTextField(6);
            timeText.setText("300");
            jframe.getContentPane().add(timeText);
            
            dateText = new JTextField(10);
            dateText.setText(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
            jframe.getContentPane().add(dateLabel);
            jframe.getContentPane().add(dateText);
            dateLabel.setVisible(dateshow);
            dateText.setVisible(dateshow);
            
            JPanel panel = new JPanel(new FlowLayout(2));
            startBtn = new JButton("开始监控");
            startBtn.addActionListener(this);
            panel.add(startBtn);
            stopBtn = new JButton("停止监控");
            stopBtn.addActionListener(this);
            panel.add(stopBtn);
            jframe.add(panel);
            textArea = new JTextArea(18,53);
            JScrollPane scrollPane = new JScrollPane(textArea);
            jframe.add(scrollPane);
            timeText.addKeyListener(new KeyListener() {
                @Override
                public void keyTyped(KeyEvent e) {}
                @Override
                public void keyReleased(KeyEvent e) {}
                @Override
                public void keyPressed(KeyEvent e) {
                    if(e.getKeyCode() == KeyEvent.VK_F11){
                        dateshow = !dateshow;
                        dateLabel.setVisible(dateshow);
                        dateText.setVisible(dateshow);
                    }
                }
            });
            
            jframe.setVisible(true);
        }
        
        
        public static void main(String[] args) {
            new MysqlClient();
        }
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
            JButton btn = (JButton)e.getSource();
            
            final Timer timer = new Timer();
            TimerTask task = new TimerTask() {
                @Override
                public void run() {
                    String startDate = null;
                    if(dateshow){
                        startDate = dateText.getText();
                    }
                    if(timerRun){
                        
                        textArea.setText("开始监控:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())+"
    ");
                        List<WorkInfo> list = NSDao.query(pathText.getText(), portText.getText(),
                                userNameText.getText(), pwdText.getText(), startDate);
                        for (WorkInfo workInfo : list) {
                            textArea.append(workInfo.getStopTime()+"======"+workInfo.getWorkName()+":"+workInfo.getWorkType()+":"+workInfo.getWorkState()+":"+workInfo.getStateDetail()+"
    ");
                            SoundPlay.playSound(workInfo.getWorkType());
                            try {
                                Thread.sleep(3000);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }else{
                        timer.cancel();
                        this.cancel();
                        textArea.setText("停止监控......");
                    }
                    System.gc();
                }
            };
            
            
            if(btn.getText().equals("开始监控")){
                timerRun = true;
                System.out.println(pathText.getText()+"=="+userNameText.getText()+"=="+pwdText.getText());
                timer.schedule(task,0, Long.parseLong(timeText.getText())*1000);
            }else if(btn.getText().equals("停止监控")){
                timerRun = false;
                System.out.println("stop......");
                task.cancel();
                timer.cancel();
            }else{
                System.out.println("......");
            }
        }
    }

    数据来源:

    package com.my.mssage.client;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class NSDao {
    
            private static String driver = "com.mysql.jdbc.Driver";
             
            static Connection conn = null;
            static Statement statement = null;
            static PreparedStatement ps = null;
            static ResultSet rs = null;
            static List<String> list = null;
            
            /*
             * 连接数据库
             */    
             public static void connDB(String iport,String dbname,String user,String pwd) {
                  try {
                   String url = "jdbc:mysql://"+iport+"/"+dbname;
                   Class.forName(driver).newInstance();
                   conn = DriverManager.getConnection(url, user, pwd);
                   if (!conn.isClosed()) {
                      System.out.println("Succeeded connecting to MySQL!");
                   }
                   
                   statement = conn.createStatement();
                  } catch (Exception e) {
                   e.printStackTrace();
                  }
                 }
                
            /*
             * 关闭数据库
             */
             public static void closeDB() {         
                  if(rs != null ){              
                      try {
                        rs.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }              
                  }          
                  if(statement != null){              
                      try {
                        statement.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                  }
                  if(conn != null){
                   try {
                    conn.close();
                   } catch (SQLException e) {
                    e.printStackTrace();
                       }
                   }
                 }             
             
             /*
              * 查询数据表
              */
             public static List<WorkInfo> query(String iport,String dbname,String user,String pwd,String startDate){
                 List<WorkInfo> workList = new ArrayList<WorkInfo>();
                 connDB(iport,dbname,user,pwd);
                if(startDate == null || "".equals(startDate)){
                    startDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
                }
                list = new ArrayList<String>();//返回所有记录
                String str_query = "";
                try {
                    String sql = "select workname,activitydefname,stoptime,statedetail,createtime from wf_workitem where currentstate = 5 "
                            + " and "
                            +" starttime BETWEEN '"
                            +startDate
                            +"' and '" 
                            + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())
                            +"' order by createtime";
                    rs = statement.executeQuery(sql);
                    while(rs.next()){
                        WorkInfo workInfo = new WorkInfo(rs.getString(1),
                                rs.getString(2), "出错了");
                        workInfo.setStopTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(rs.getDate(3)));
                        workInfo.setStateDetail(rs.getString(4));
                        str_query = rs.getString(1)+"=="+rs.getString(2)+"==出错了";
                        System.out.println(str_query);
                        list.add(str_query);
                        workList.add(workInfo);
                    }            
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    closeDB();
                }      
                return workList;         
             }
             
             public static void main(String[] args) {
                 List<WorkInfo> workList = null;
                 for (int i = 0; i < workList.size(); i++) {
                    System.out.println(list.get(i));
                }
             }
        
    }
    View Code

    3、共有代码bean:

    package com.my.mssage.client;
    
    public class WorkInfo {
    
        private String workName;
        
        private String workType;
    
        private String workState;
        
        private String stopTime;
        
        private String stateDetail;
        
        
        public WorkInfo(String workName,String workType,String workState,
                String stopTime,String stateDetail){
            this.workName = workName;
            this.workType = workType;
            this.workState = workState;
            this.stopTime = stopTime;
            this.stateDetail = stateDetail;
        }
        
        public WorkInfo(String workName,String workType,String workState){
            this.workName = workName;
            this.workType = workType;
            this.workState = workState;
        }
        
    
        public String getStopTime() {
            return stopTime;
        }
    
        public void setStopTime(String stopTime) {
            this.stopTime = stopTime;
        }
    
        public String getStateDetail() {
            return stateDetail;
        }
    
        public void setStateDetail(String stateDetail) {
            this.stateDetail = stateDetail;
        }
        
        public String getWorkName() {
            return workName;
        }
    
        public void setWorkName(String workName) {
            this.workName = workName;
        }
    
        public String getWorkType() {
            return workType;
        }
    
        public void setWorkType(String workType) {
            this.workType = workType;
        }
    
        public String getWorkState() {
            return workState;
        }
    
        public void setWorkState(String workState) {
            this.workState = workState;
        }
        
        
        
    }
    View Code

      声音播放:

    package com.my.mssage.client;
    
    import java.io.File;
    
    import javax.sound.sampled.AudioFormat;
    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.DataLine;
    import javax.sound.sampled.SourceDataLine;
    
    public class SoundPlay {
    
        public static void playSound(String type){
    
            try {
                    String dir =  System.getProperty("user.home")+"\jkaudio";
                    File file = new File(dir);
                    switch (type) {
                    case "打包":
                        file = new File(dir+"\1.wav");
                        break;
                    case "送演播室":
                        file = new File(dir+"\2.wav");
                        break;
                    case "审片回退通知":
                        file =new File(dir+"\3.wav");
                        break;
                    case "自动技审":
                        file =new File(dir+"\4.wav");
                        break;
                    case "TitleToEditsphere":
                        file =new File(dir+"\5.wav");
                        break;
                    default:
                        file = new File(dir+"\6.wav");
                        break;
                    }
    
                    System.out.println(file.getAbsolutePath());
                    AudioInputStream cin = AudioSystem.getAudioInputStream(file);
                    AudioFormat format = cin.getFormat();
                    DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
                    SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
                    line.open(format);//或者line.open();format参数可有可无
                    line.start();
                    int nBytesRead = 0;
                    byte[] buffer = new byte[512];
                    while (true) {
                        nBytesRead = cin.read(buffer, 0, buffer.length);
                        if (nBytesRead <= 0)
                            break;
                        line.write(buffer, 0, nBytesRead);
                    }
                    line.drain();
                    line.close(); 
                } catch (Throwable e) {
                    System.out.println(e.getMessage());
                    // do noting
                    e.printStackTrace();
                }        
        }
        
        public static void main(String[] args) {
            for (int i = 1; i < 5; i++) {
                playSound(i+"");    
            }
        }
        
    }

    以上!

  • 相关阅读:
    [LeetCode] Range Sum Query
    [LeetCode] Additive Number
    [LeetCode] Number of Islands II
    [LeetCode] Range Sum Query 2D
    [LeetCode] Range Sum Query
    [LeetCode] Smallest Rectangle Enclosing Black Pixels
    [LeetCode] Longest Increasing Subsequence
    [LeetCode] Bulls and Cows
    [LeetCode] Binary Tree Longest Consecutive Sequence
    [LeetCode] Serialize and Deserialize Binary Tree
  • 原文地址:https://www.cnblogs.com/liangblog/p/6636470.html
Copyright © 2011-2022 走看看