fork download
  1. package object_ex;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Frame;
  5. import java.awt.TextArea;
  6. import java.awt.TextField;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.WindowAdapter;
  10. import java.awt.event.WindowEvent;
  11. import java.io.IOException;
  12. import java.io.ObjectInputStream;
  13. import java.io.ObjectOutputStream;
  14. import java.net.Socket;
  15. import java.net.UnknownHostException;
  16.  
  17. public class Chat_Client extends Frame{
  18.  
  19. TextField textField=new TextField("");//輸入欄位
  20. TextArea textArea=new TextArea();//顯示欄位
  21. String str=null;
  22. object_data data = new object_data();
  23.  
  24. Socket client;
  25. ObjectOutputStream output=null;
  26. ObjectInputStream input=null;
  27. boolean isConnected=false;
  28.  
  29. public static void main(String[] args) {
  30. new Chat_Client().launchFrame();
  31. }
  32.  
  33.  
  34. public Chat_Client(){
  35. connect();
  36. new Thread(new ClientOwnThread()).start();
  37. }
  38.  
  39. public void launchFrame(){
  40. this.setLocation(400,300);
  41. this.setSize(300,300);
  42. this.add(textArea,BorderLayout.NORTH);
  43. this.add(textField,BorderLayout.SOUTH);
  44. this.pack();
  45. textArea.setEditable(false);
  46. this.setVisible(true);
  47.  
  48. this.addWindowListener(new WindowAdapter(){
  49. public void windowClosing(WindowEvent e){
  50. System.exit(0);
  51. }
  52. });
  53.  
  54. textField.addActionListener(new TextFieldListener());
  55. }
  56.  
  57. private void connect(){
  58. try {
  59. client=new Socket("127.0.0.1",8888);
  60. output=new ObjectOutputStream(client.getOutputStream());
  61. input=new ObjectInputStream(client.getInputStream());
  62. isConnected=true;
  63. } catch (UnknownHostException e) {
  64. e.printStackTrace();
  65. } catch (IOException e) {
  66. e.printStackTrace();
  67. }
  68. }
  69.  
  70. private void disConnect(){
  71.  
  72. try {
  73. if(output!=null) output.close();
  74. if(input!=null) input.close();
  75. if(client!=null) client.close();
  76. } catch (IOException e) {
  77. // TODO Auto-generated catch block
  78. e.printStackTrace();
  79. }
  80. }
  81.  
  82. class ClientOwnThread implements Runnable{
  83. public void run() {
  84. try {
  85. while(isConnected){
  86. data = (object_data)input.readObject();
  87. String str = data.getchat();
  88. //String str=(String)input.readObject();
  89. textArea.append(str+"\n");
  90. }
  91. } catch (Exception e) {
  92. e.printStackTrace();
  93. }
  94. finally{
  95. disConnect();
  96. }
  97. }
  98. }
  99.  
  100. private class TextFieldListener implements ActionListener{
  101. public void actionPerformed(ActionEvent arg0) {
  102. data.setchat(textField.getText().trim());
  103. //str=textField.getText().trim();
  104. textField.setText("");
  105. try {
  106. output.writeObject(data);
  107. output.flush();
  108. } catch (IOException e) {
  109. // TODO Auto-generated catch block
  110. e.printStackTrace();
  111. }
  112.  
  113. }
  114. }
  115. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:17: error: class Chat_Client is public, should be declared in a file named Chat_Client.java
public class Chat_Client extends Frame{
       ^
Main.java:22: error: cannot find symbol
  object_data data = new object_data();
  ^
  symbol:   class object_data
  location: class Chat_Client
Main.java:22: error: cannot find symbol
  object_data data = new object_data();
                         ^
  symbol:   class object_data
  location: class Chat_Client
Main.java:86: error: cannot find symbol
          data = (object_data)input.readObject();
                  ^
  symbol:   class object_data
  location: class Chat_Client.ClientOwnThread
4 errors
stdout
Standard output is empty