📄 webgisframe.java
字号:
package webgisserver;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import java.util.Date;
import java.net.*;
import java.io.*;
import java.text.*;
import java.util.Vector;
import java.sql.*;
//import oracle.jdbc.driver.*;
public class WebGisFrame extends JFrame {
private JPanel contentPane;
private JMenuBar jMenuBar1 = new JMenuBar();
private JMenu jMenuConnect = new JMenu();
private JMenuItem jMenuConnectServer = new JMenuItem();
private JMenuItem jMenuConnectExit = new JMenuItem();
private JMenu jMenuHelp = new JMenu();
private JMenuItem jMenuHelpAbout = new JMenuItem();
private JToolBar jToolBar = new JToolBar();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
private JButton jButton3 = new JButton();
private ImageIcon image1;
private ImageIcon image2;
private ImageIcon image3;
private JLabel statusBar = new JLabel();
private BorderLayout borderLayout1 = new BorderLayout();
private Panel panel1 = new Panel();
private java.awt.List ListGpsMessage = new java.awt.List();
private OverlayLayout2 overlayLayout21 = new OverlayLayout2();
private boolean ConnectFlag=false;
public String FileName="";
public StringWriter sw = new StringWriter();
public PrintWriter pw = new PrintWriter(sw);
public FileOutputStream fos =null;
public OutputStreamWriter osw =null;
public BufferedWriter bw =null;
Thread connectThread = null;
//Construct the frame
public WebGisFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
FileName="c:\\WebGisLog\\"+"WebGisGps"+getTime()+".txt";
File CreateFile = new File(FileName);
CreateFile.createNewFile();
image1 = new ImageIcon(webgisserver.WebGisFrame.class.getResource("openFile.gif"));
image2 = new ImageIcon(webgisserver.WebGisFrame.class.getResource("closeFile.gif"));
image3 = new ImageIcon(webgisserver.WebGisFrame.class.getResource("help.gif"));
//setIconImage(Toolkit.getDefaultToolkit().createImage(WebGisFrame.class.getResource("[Your Icon]")));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(580, 490));
this.setTitle("亚太安讯WebGis Socket 服务");
statusBar.setText(getDateTime());
jMenuConnect.setText("连接管理");
jMenuConnectServer.setText("打开连接");
jMenuConnectServer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuConnectServer_actionPerformed(e);
}
});
jMenuConnectExit.setText("退出");
jMenuConnectExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuConnectExit_actionPerformed(e);
}
});
jMenuHelp.setText("帮助");
jMenuHelpAbout.setText("关于");
jMenuHelpAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuHelpAbout_actionPerformed(e);
}
});
jButton1.setIcon(image1);
jButton1.setToolTipText("连接服务器");
jButton2.setIcon(image2);
jButton2.setToolTipText("断开连接");
jButton3.setIcon(image3);
jButton3.setToolTipText("帮助");
ListGpsMessage.setBackground(Color.lightGray);
panel1.setLayout(overlayLayout21);
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jMenuConnect.add(jMenuConnectServer);
jMenuConnect.add(jMenuConnectExit);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuConnect);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
contentPane.add(jToolBar, BorderLayout.NORTH);
contentPane.add(panel1, BorderLayout.CENTER);
panel1.add(ListGpsMessage, null);
contentPane.add(statusBar, BorderLayout.SOUTH);
ListGpsMessage.add("连接没有打开!");
//////////////////////////////////////////////
java.sql.Connection Conn;
java.sql.Statement Stmt;
}
/*//////////////////////////////////////////////////////////////////////////////////////
打开连接
/////////////////////////////////////////////////////////////////////////////////////*/
public void jMenuConnectServer_actionPerformed(ActionEvent e)
{
String sMsg;
if(ConnectFlag==false)
{
jMenuConnectServer.setText("断开连接");
connectThread = new ConnectThread(ListGpsMessage);
connectThread.start();
ConnectFlag=true;
}
else
{
jMenuConnectServer.setText("打开连接");
connectThread.stop();
ConnectFlag=false;
sMsg=getDateTime()+"连接已断开";
WriteFile(sMsg);
ListGpsMessage.add(sMsg);
}
}
public void jMenuConnectExit_actionPerformed(ActionEvent e) {
System.exit(0);
}
//Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
WebGisFrame_AboutBox dlg = new WebGisFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuConnectExit_actionPerformed(null);
}
}
public static void main(String[] args) {
/*String s="webgis$test$huafeng";
int index1=s.indexOf("$");
String temp="";
System.out.println(index1);
temp=s.substring(0,index1);
System.out.println(temp);
int index2=s.indexOf("$",index1+1);
System.out.println(index2);
temp=s.substring(index1+1,index2);
System.out.println(temp);
temp=s.substring(index2+1,s.length());
System.out.println(temp);*/
WebGisFrame frame1 = new WebGisFrame();
frame1.setSize(650,400);
frame1.show();
}
/*//////////////////////////////////////////////////////////////////////////////////////
连接gps服务线程
/////////////////////////////////////////////////////////////////////////////////////*/
class ConnectThread extends Thread{
private List ListGpsMessage;
private String sMsg;
public ConnectThread(List listbox)
{
ListGpsMessage = listbox;
}
public void run(){
try{
int port; //缺省为1500
ServerSocket server_socket;
BufferedReader input;
//System.out.println("port = 6111 (default)");
port=8877;
try
{
server_socket = new ServerSocket(port);
System.out.println("tcpServer waiting for client on port " +
server_socket.getLocalPort());
sMsg=getTime()+"端口:"+server_socket.getLocalPort()+"连接已打开,等待客户连接!";
WriteFile(sMsg);
ListGpsMessage.add(sMsg);
//不停的循环,用于接受客户端的请求
int count=0;
while(true)
{
Socket socket = server_socket.accept();
count++;
Thread tcpServerThread =new tcpServerThread(socket,count,ListGpsMessage);
tcpServerThread.start();
sMsg=getTime()+socket.getInetAddress()+ ":" + socket.getPort()+"连接";
System.out.println("New client accepted " +socket.getInetAddress()+ ":" + socket.getPort());
ListGpsMessage.add(sMsg);
}
}
catch (Exception ee)
{
System.out.println(ee);
}
}catch(Exception e){
System.out.println(e);
}
}
private String getTime()
{
Date currentTime=new Date();
//SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy MMMM dd,EEEE, HH:mm:ss");
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy\\MM\\dd HH:mm:ss ");
String timeString=dateFormat.format(currentTime);
return timeString;
}
void WriteFile(String sMessage)
{
try
{
FileWriter file = new FileWriter(FileName,true);
PrintWriter out = new PrintWriter(file);
out.println(sMessage);
out.close();
file.close();
} catch (IOException e)
{
System.out.println("错!");
e.printStackTrace();
}
}
}
/*//////////////////////////////////////////////////////////////////////////////////////
连接gps服务,接收GPS信息,转发到客户端
/////////////////////////////////////////////////////////////////////////////////////*/
class tcpServerThread extends Thread{
private Socket tcpSocket;
private int intNumber;
private List ListGpsMessage;
private String sMsg;
java.sql.Connection Conn;
java.sql.Statement Stmt;
public tcpServerThread(Socket socket,int count,List listbox)
{
/*
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Conn= DriverManager.getConnection ("jdbc:oracle:thin:@192.168.0.163:1521:gpsdata",
"test", "test");
Stmt= Conn.createStatement();
}
catch (Exception ae )
{
System.out.println (ae);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -