java 网络传输 abel-java, client传值控制server端 JLabel上的text值, 可是值一直不变

问题描述

java, client传值控制server端 JLabel上的text值, 可是值一直不变

client端代码:
public class KeyboardGUI{

public final String PASSWORD = "123";
public JFrame frame;
public JTextField textField;
public JLabel lblOnoff;
public Socket socket;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                KeyboardGUI window = new KeyboardGUI();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the application.
 */
public KeyboardGUI() {
    initialize();

}

/**
 * Initialize the contents of the frame.
 */
public void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 323, 437);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    lblOnoff = new JLabel("ON/OFF");
    lblOnoff.setFont(new Font("Tahoma", Font.PLAIN, 35));
    lblOnoff.setBounds(132, 11, 150, 53);
    frame.getContentPane().add(lblOnoff);

    JButton button = new JButton("1");
    button.setFont(new Font("Tahoma", Font.PLAIN, 18));
    button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText(textField.getText() + "1");
        }
    });
    button.setBounds(30, 110, 80, 50);
    frame.getContentPane().add(button);

    JButton button_1 = new JButton("2");
    button_1.setFont(new Font("Tahoma", Font.PLAIN, 18));
    button_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText(textField.getText() + "2");
        }
    });
    button_1.setBounds(116, 110, 80, 50);
    frame.getContentPane().add(button_1);

    JButton button_2 = new JButton("3");
    button_2.setFont(new Font("Tahoma", Font.PLAIN, 18));
    button_2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText(textField.getText() + "3");
        }
    });
    button_2.setBounds(202, 110, 80, 50);
    frame.getContentPane().add(button_2);

    JButton button_3 = new JButton("4");
    button_3.setFont(new Font("Tahoma", Font.PLAIN, 18));
    button_3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText(textField.getText() + "4");
        }
    });
    button_3.setBounds(30, 167, 80, 50);
    frame.getContentPane().add(button_3);

    JButton button_4 = new JButton("5");
    button_4.setFont(new Font("Tahoma", Font.PLAIN, 18));
    button_4.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText(textField.getText() + "5");
        }
    });
    button_4.setBounds(116, 167, 80, 50);
    frame.getContentPane().add(button_4);

    JButton btnReset = new JButton("Reset");
    btnReset.setFont(new Font("Tahoma", Font.PLAIN, 18));
    btnReset.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            textField.setText("");
        }
    });
    btnReset.setBounds(30, 337, 80, 50);
    frame.getContentPane().add(btnReset);

    JButton btnSubmit = new JButton("Submit");
    btnSubmit.setFont(new Font("Tahoma", Font.PLAIN, 18));
    btnSubmit.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            try {
                KeypadClientSocket();
            } catch (Exception e3) {
                // TODO Auto-generated catch block
                e3.printStackTrace();
            }

            DataOutputStream out = null;
            try {
                out = new DataOutputStream(socket.getOutputStream());
            } catch (IOException e2) {
                // TODO Auto-generated catch block
                e2.printStackTrace();
            }
            String textFieldSting = new String();
            textFieldSting = textField.getText();
            if(textFieldSting.equals(PASSWORD))
            {
                lblOnoff.setText("OFF");
                lblOnoff.setForeground(Color.GREEN);
                try {
                    out.writeInt(1);

                    out.flush();

                    out.close();

                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
            else {
                lblOnoff.setText("ON");
                lblOnoff.setForeground(Color.RED);
                try {
                    out.writeInt(0);

                    out.flush();

                    out.close();

                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }

            textField.setText("");

        }
    });
    btnSubmit.setBounds(116, 337, 166, 50);
    frame.getContentPane().add(btnSubmit);

    textField = new JTextField();
    textField.setFont(new Font("Tahoma", Font.PLAIN, 15));
    textField.setBounds(30, 65, 252, 39);
    textField.setText("");
    frame.getContentPane().add(textField);

}

 public void KeypadClientSocket() throws Exception
    {

     socket = new Socket("10.0.0.29", 4000);

    }

}

Server端代码:
Main.java:

public class Main
{
public static void main(String[] args) throws Exception
{
SensorGUI1 sensorGUI = new SensorGUI1();
sensorGUI.SensorGUI();

    KeypadServerThread();

}

public static void KeypadServerThread() throws Exception {

    ServerSocket serverSocket = new ServerSocket(4000);

    while (true)
    {
        Socket socket = serverSocket.accept();

        new KeypadServerThread(socket).start();

    }
}

}

KeypadServerThread.java:

public class KeypadServerThread extends Thread
{
private Socket socket;
public int data=0;

public KeypadServerThread(Socket socket)
{
    super();
    this.socket = socket;
}

@Override
public void run()
{
    try
    {
        DataInputStream is = new DataInputStream(socket.getInputStream());

        NumObservable numObservable = new NumObservable();
        numObservable.addObserver(new SensorGUI1());
        int dataFromUser = is.readInt();
        numObservable.setData(dataFromUser);

        if (dataFromUser == 1) {
            is.close();
        }

    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
}

}

class NumObservable extends Observable {
public int data=2;

public int getData() {
   return data;
}

public void setData(int i) {
   data = i;
   setChanged();
   notifyObservers();
}

}

SensorGUI1.java:

public class SensorGUI1 implements Observer {

private JFrame frame;
JButton btnOn;
JLabel lblBackgroud;
int feedBack;
NumObservable myObserable;

/**
 * Launch the application.
 */
public void SensorGUI() {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                SensorGUI1 window = new SensorGUI1();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public SensorGUI1() {
    initialize();
}

public void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 749, 414);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    JLayeredPane layeredPane = new JLayeredPane();
    layeredPane.setBounds(10, 11, 713, 353);
    frame.getContentPane().add(layeredPane);

    lblBackgroud = new JLabel("Backgroud");
    lblBackgroud.setBounds(622, 282, 62, 14);
    layeredPane.add(lblBackgroud);

    btnOn = new JButton("ON");
    btnOn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
        }
    });
    btnOn.setBounds(603, 11, 89, 44);
    layeredPane.add(btnOn);

}

@Override
public void update(Observable o, Object arg) {
    myObserable = (NumObservable) o;

    new Thread(new Runnable() {

        @Override
        public void run() {
            if (myObserable.getData() == 1) {
                System.out.println(myObserable.getData());
                lblBackgroud.setText("OFF");
                JOptionPane.showMessageDialog(frame, "The user turned off the system");

            } else if (myObserable.getData() == 0) {
                lblBackgroud.setText("ON");
                JOptionPane.showMessageDialog(frame, "The user turned on the system");
            }
        }
    }).start();;

}

}

时间: 2025-01-18 19:22:58

java 网络传输 abel-java, client传值控制server端 JLabel上的text值, 可是值一直不变的相关文章

java网络编程错误java.net.ConnectException: Connection refused: connect求教

问题描述 java网络编程错误java.net.ConnectException: Connection refused: connect求教 刚开始学习java网络编程,在书上看到一段代码,就动手试一下,结果出现下面错误: java.net.ConnectException: Connection refused: connect 源代码如下: import java.io.*; import java.net.*; class lx01 { public static void main(S

学习了java网络编程,看到tcp ip那里时,书上讲tcp的内容时,只讲了tcp服务器端

问题描述 学习了java网络编程,看到tcp ip那里时,书上讲tcp的内容时,只讲了tcp服务器端 没有讲客户端,只是说用电脑的telnet去链接,那么java一般怎么用自己编写的程序去链接tcp服务器呢,这个该怎么写,有关于这方面的书籍吗,或是这方面的知识该去哪里去找? 解决方案 http://blog.csdn.net/wintys/article/details/3525619 解决方案二: java网络编程,java核心技术卷二 解决方案三: java核心技术卷二.. 解决方案四: j

java网络编程中IO数据输入输出阻塞

问题描述 java网络编程中IO数据输入输出阻塞 服务端代码如下: public class Server { public static void main(String[] args) throws IOException { ServerSocket ss = new ServerSocket(30000); Socket socket = ss.accept(); PrintStream ps = new PrintStream(socket.getOutputStream()); ps

Java 网络教程: JarURLConnection

Java 网络教程: JarURLConnection Java 中 JarURLConnection 类用来链接 Java 的 Jar 包文件.一旦连接成功,你就可以获取到 Jar 包里面文件的内容. 下面是一个简单的实例: String urlString = "http://butterfly.jenkov.com/" + "container/download/" + "jenkov-butterfly-container-2.9.9-beta.j

OGG 安全特性--网络传输加密

三.网络传输加密 GoldenGate在传输数据的时候,默认是不加密的.可以在GoldenGate通过网络传输数据之前将数据加密,传送到目标端以后,在写入trail文件之前将数据解密.这样就有效地保护了数据在传输过程中的安全. 加密网络传输的步骤如下. 在生产端生成多个KEY,然后保存到ENCKEYS文件中,上面介绍生成了ENCKEYS文件,这里我们直接拿来用. 示例16: [oracle@OE5 orcl1]$ cat ENCKEYS ## Encryption keys ## Key nam

Java 网络文件传输

网络 读者范围: 本文是一篇简短入门文章.本文假设读者对Java的IO系统和Java的网络系统有所了解. 正文: 关于文件传输的问题,实际也是一种IO读写的基本问题.对于网络而言也是一种IO读写问题.因此所谓网络的文件传输实际是两种IO问题的综合讨论.这里我们首先分析一个图示.然后围绕这个图示来讨论: 图1: 分析图1我们基本可以知道从服务器文件系统中通过流把文件中的数据写入到服务器的进程中,然后把进程中的数据通过网络IO系统传递到客户机,这个阶段,网络中的数据以字节流的形式保存.当该字节流被客

c++-如何用java或者C++编写一个可以验证网络IP接入段合法性并且控制其流量的简易服务器呢?

问题描述 如何用java或者C++编写一个可以验证网络IP接入段合法性并且控制其流量的简易服务器呢? 本人不是学编程,但是毕业设计里面需要做这个 ,希望各路大神不吝赐教 解决方案 http://wenku.baidu.com/link?url=j_QVex7Ffpzw6nOsgiUK3NIdDmNy0sSKt1WuWluBvu6Y9b1Xd41XMPXeDLa5W9zdVErzoScQCyjj_1T1EygG8cX3GaJsr3zxrtOtWI8ZIvO 解决方案二: 计算单位时间write的数

Java编码及网络传输中的编码问题

Java编码及网络传输中的编码问题 近来试着FTP搜索,遇到编码问题,研究了下. Java内部的String为Unicode编码,每个字符占两个字节. Java编解码方法如下: String str = "hi好啊me";   byte[] gbkBytes=str.getBytes("GBK");//将String的Unicode编码转为GBK编码,输出到字节中  String string=new String(gbkBytes,"GBK")

局域网-java socket 网络传输文件使网络使用率最大化

问题描述 java socket 网络传输文件使网络使用率最大化 局域网传输文件,如何使网络使用率最大化,主要问题是在客户端接收数据写入磁盘时会影响传输效率,有没有好的办法解决呢? 解决方案 1)文件分片并使用多线程传输,文件传输前要预先在磁盘分配好文件所需空间 2)为了提高传输效率,客户端建立数据的内存缓冲区,针对每一个文件片的传输,客户端要启一个线程负载下载到缓冲区,再启一线程从缓冲区读数据写磁盘. 解决方案二: 多线程,边传输数据边写入文件