前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Swing客户端小项目

Java Swing客户端小项目

作者头像
JQ实验室
发布2022-02-11 15:25:43
2.1K0
发布2022-02-11 15:25:43
举报
文章被收录于专栏:实用技术

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

项目1:

关键词:swing jtable

代码如下:

1、主类:

代码语言:javascript
复制
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

代码语言:javascript
复制
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];
    }

}

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

代码语言:javascript
复制
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;
    }
    
}

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

1.查询MongoDB数据库:

主类:

代码语言:javascript
复制
 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())+"\r\n");
                    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()+"\r\n");
                        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("......");
        }
        
        
    }
}

数据查询:

代码语言:javascript
复制
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;
    }
    
    
}

2.查询Mysql数据库:

主类:

代码语言:javascript
复制
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())+"\r\n");
                    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()+"\r\n");
                        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("......");
        }
    }
}

数据来源:

代码语言:javascript
复制
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));
            }
         }
    
}

3、共有代码bean:

代码语言:javascript
复制
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;
    }
    
    
    
}

声音播放:

代码语言:javascript
复制
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+"");    
        }
    }
    
}

以上!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档