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