Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ぷいぷいまん

例えばアプレット側ボタンが1,2,3のボタンがあれば、サーバーがどのボタンが押されたか知る必要がある場合、どういった方法がありますか?

4

回答

5462

閲覧

4件の回答

評価

0

自分で立てたツリーは、終わらせてください。

今回の質問については、

http://www.javaroad.jp/bbs/answer.jsp?q_id=2005120117500267

このあたりが参考になりませんか。

評価

0

ボタン1で送信すると返答1〜ボタン2で送信すると返答2〜
と返してくるものを作るためにこんな感じで、リクエストパラメーターの送受信の仕方が分かりません。
どこを直したらいいか教えてください。


// 簡単なApplet-Servlet間通信
// アプレット側

import java.applet.*;
import java.io.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import javax.swing.*;

public class Client extends JApplet 
{
JTextField textfield;
    JButton button1;
    JButton button2;
    JButton button3;
    JLabel label;

    //イベントハンドラ
    EventHandler eh;

    public void init() 
    {
        //ボタンの作成とテキストフィールド
        button1 = new JButton("送信1");
        button2 = new JButton("送信2");
        button3 = new JButton("送信3");

        textfield = new JTextField();
        label = new JLabel("サーバーからのメッセージ");

        //ボタンイベントの登録
        eh = new EventHandler();
        button1.addActionListener(eh);
        button2.addActionListener(eh);
        button3.addActionListener(eh);

        //パネルに登録
        Container c = getContentPane();
        c.setLayout(null);

        //位置の調整
        button1.setBounds(30,30,100,20);
        button2.setBounds(30,60,100,20);
        button3.setBounds(30,90,100,20);

        textfield.setBounds(30,120,100,20);
        label.setBounds(30,150,150,20);

        c.add(button1);
        c.add(button2);
        c.add(button3);

        c.add(textfield);
        c.add(label);
    }

    class EventHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource() == button1)
            {
                com();
            }

            if(e.getSource() == button2)
            {
                com();
            }

            if(e.getSource() == button3)
            {
                com();
            }

        }
    }

    //通信用のメンバ関数
    public void com()
    {
            try
            {
                URL url = new URL("http://localhost:8080/ComApplet");
                String req = textfield.getText();
                req = new String(req.getBytes("SJIS"),"8859_1");

                URLConnection ucon = url.openConnection();
                ucon.setDoOutput(true);
                ucon.setDoInput(true);
                ucon.setUseCaches(false);

                DataOutputStream dos = new DataOutputStream( ucon.getOutputStream() );
                dos.writeUTF(req);
                dos.flush();
                dos.close();

                DataInputStream dis = new DataInputStream( ucon.getInputStream() );
                String result = dis.readUTF();
                dis.close();

                label.setText(result);
            }
            catch(Exception ee)
            {
                ee.printStackTrace();
            }
    }
}

評価

0

少しは試行錯誤してください。

評価

0

そう言わずに・・・
ヒントだけでもお願いします。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。