记录一下两个用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

相关文章: