62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.net.*;
public class Transmitter {
String dictateString = "";
int r = 0, i=0;
Random ran = new Random();
TextField dictateText = new TextField(dictateString); //指令文本
//Label dictateText = new Label(dictateString);
InetAddress myIP = null;
public Transmitter(){
JFrame fr = new JFrame("按键准确度测试-服务器端");
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setSize(600,400);
fr.setLocation(100,100);
fr.setVisible(true);
fr.setResizable(false);
Container ct = fr.getContentPane();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints gridbagC = new GridBagConstraints();
ct.setLayout(gridbag);
gridbagC.insets = new Insets(2,5,2,5);
// 说明标签
gridbagC.gridx = 1;
gridbagC.gridy = 1;
gridbagC.gridwidth = 2;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.SOUTHWEST;
gridbagC.fill = GridBagConstraints.HORIZONTAL;
Label instructionLabel = new Label("服务器端说明:");
gridbag.setConstraints(instructionLabel, gridbagC);
ct.add(instructionLabel);
// 说明内容
gridbagC.gridx = 1;
gridbagC.gridy = 2;
gridbagC.gridwidth = 4;
gridbagC.gridheight = 2;
gridbagC.anchor = GridBagConstraints.CENTER;
gridbagC.fill = GridBagConstraints.BOTH;
Label instructionText = new Label("本程序测试您的按键准确度,服务器端" +
"发送20个随机指令:上、下、左、右,并以end结束。");
gridbag.setConstraints(instructionText, gridbagC);
ct.add(instructionText);
// 指令按钮
gridbagC.gridx = 1;
gridbagC.gridy = 4;
gridbagC.gridwidth = 1;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.SOUTHWEST;
gridbagC.fill = GridBagConstraints.WEST;
Button dictateButton = new Button("生成随机指令");
gridbag.setConstraints(dictateButton, gridbagC);
ct.add(dictateButton);
// 指令提示标签
gridbagC.gridx = 2;
gridbagC.gridy = 4;
gridbagC.gridwidth = 1;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.SOUTHWEST;
gridbagC.fill = GridBagConstraints.HORIZONTAL;
Label insAdviceLabel = new Label("(请按键生成随机指令)");
gridbag.setConstraints(insAdviceLabel, gridbagC);
ct.add(insAdviceLabel);
// 指令生成
// 在方法 dictateButton_action() 中
// 指令显示
gridbagC.gridx = 1;
gridbagC.gridy = 5;
gridbagC.gridwidth = 4;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.WEST;
gridbagC.fill = GridBagConstraints.BOTH;
//TextField dictateText = new TextField(dictateString);
dictateText.setSize(100, 20);
//dictateText.setSize(400, 100);
gridbag.setConstraints(dictateText, gridbagC);
ct.add(dictateText);
// 指令按钮事件监听
dictateButton.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
dictateButton_action(e);
dictateText.setText(dictateString);
}
}
);
// 客户端IP标签
gridbagC.gridx = 1;
gridbagC.gridy = 6;
gridbagC.gridwidth = 2;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.SOUTHWEST;
gridbagC.fill = GridBagConstraints.BOTH;
Label ipLabel = new Label("请输入客户端IP地址(默认为本机IP):");
gridbag.setConstraints(ipLabel, gridbagC);
ct.add(ipLabel);
// IP文本框
gridbagC.gridx = 1;
gridbagC.gridy = 7;
gridbagC.gridwidth = 4;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.CENTER;
gridbagC.fill = GridBagConstraints.BOTH;
getLocalIP();
TextField ipText = new TextField(myIP.toString());
gridbag.setConstraints(ipText, gridbagC);
ct.add(ipText);
// IP文本 事件监听
/*
ipText.addTextListener(
new TextListener(){
public void actionPerformed(ActionEvent e){
dictateButton_action(e);
dictateText.setText(dictateString);
}
}
);
*/
// 发送指令 按钮
gridbagC.gridx = 1;
gridbagC.gridy = 8;
gridbagC.gridwidth = 2;
gridbagC.gridheight = 1;
gridbagC.anchor = GridBagConstraints.SOUTHWEST;
gridbagC.fill = GridBagConstraints.WEST;
Button sendButton = new Button("发送指令");
gridbag.setConstraints(sendButton, gridbagC);
ct.add(sendButton);
}
// 方法 : 按钮事件动作 - 指令生成
void dictateButton_action(ActionEvent e){
dictateString = "";
for(i=0;i<19;i++){
r = ran.nextInt(4);
switch(r){
case 0 : dictateString += "上"; break;
case 1 : dictateString += "下"; break;
case 2 : dictateString += "左"; break;
case 3 : dictateString += "右"; break;
}
}
dictateString += "end";
}
// 方法 :获取本机IP地址
void getLocalIP(){
try{
myIP = InetAddress.getLocalHost();
}
catch(UnknownHostException e ){}
}
public static void main(String[] args){
Transmitter transmitter = new Transmitter();
}
}