2016-03-19 3 views
0
package chatserver; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.net.*; 
import java.io.*; 


public class ChatServer implements Runnable, ActionListener { 

    private JFrame jfrm; 
    private ServerSocket serverSocket; 
    private Socket clientSocket; 
    private ObjectOutputStream oos; 
    private ObjectInputStream ois; 
    private JTextArea jta; 
    private JScrollPane jsp; 
    private JTextField jtflInput; 
    private JButton jbtnSend; 

    public void ChatServer 
    { 
        jfrm = new JFrame("Chat Server"); 
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        jfrm.setLayout(new FlowLayout()); 
        jfrm.setSize(300,320); 
        Thread myThread = new Thread(this); 
        myThread.start(); 
        jta = new JTextArea(15,15); 
        jta.setEditable(false); 
        jta.setLineWrap(true); 
        jsp = new JScrollPane(jta); 
        jtflInput.addActionListener(this); 
        jbtnSend = new JButton("Send"); 
        jbtnSend.addActionListener(this); 

        jfrm.getContentPane().add(jsp); 
        jfrm.getContentPane().add(jtflInput); 
        jfrm.getContentPane().add(jbtnSend); 
        jfrm.setVisible(true); 

       public void run() 
       { 
        try 
        { 
         serverSocket = new ServerSocket(4444); 
         clientSocket = serverSocket.accept(); 
         oos = new ObjectOutputStream(clientSocket.getOutputStream()); 
         ois = new ObjectInputStream(clientSocket.getInputStream()); 
         while(true) 
         { 
          Object input = ois.readObject(); 
          jta.setText(jta.getText()+ "Client Says" + (String)input + "\n"); 

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


       public void actionPerformed(ActionEvent ae) 
       { 
        if(ae.getActionCommand().equals("Send") || ae.getSource() instanceof JTextField) 
        { 
         try 
         { 
          oos.writeObject(jtflInput.getText()); 
          jta.setText(jta.getText() + "You say:" + jtflInput.getText() +"\n"); 
         } 
         catch(IOException e) 
         { 
          e.printStackTrace(); 
         } 
        } 
       } 
    } 
    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 

     SwingUtilties.invokeLater(new Runnable(){ 

      public void run() 
      { 
       new ChatServer(); 
      } 

     }); 
    } 

} 

チュートリアルのソケットを使用してチャットアプリケーションを作成しようとしています。私は別のコンパイル時のエラーを取得しています:actionPerformed() ソケットを使用してJavaチャットアプリケーションで異なるエラーが発生しています

どれに期待actionPerformed()

  • ;での発現のpublic void run
  • 違法開始時に期待public void run
  • ;での発現の

    1. 不正スタートをヘルプ

  • 答えて

    1

    コンストラクターを定義するための構文が間違っています。

    public void ChatServer()は、メソッドを定義するための有効な構文ですが、コードの左側に沿ってコンストラクタを定義する必要があります。これに代えて

    public ChatServer() // add() here and remove void 
    { 
        jfrm = new JFrame("Chat Server"); 
    
        // snipped 
    
        jfrm.setVisible(true); 
    } // add } here 
    

    は、この試してみてくださいそのため

    public void ChatServer 
    { 
           jfrm = new JFrame("Chat Server"); 
    
           // snipped 
    
           jfrm.setVisible(true); 
    
    +0

    感謝をまだ表現の違法なスタートを取得し、予想された両方の箇所@ –

    +0

    @AshirogiMutoあなたは 'public static void main(String [] args)'の前にコメントの前に '}'を追加しています。それを除く。 – MikeCAT

    +0

    それはチャットサーバーの権利ですか?それを終了する。 –

    関連する問題