📄 datatestface.java
字号:
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.math.*;
public class DataTestFace implements ActionListener
{
private static final int WINDOW_WIDTH=450;
private static final int WINDOW_HEIGHT=220;
private static final int FILED_WIDTH=22;
private JFrame window;
private JLabel InputLable,OutputLabel;
private JTextField InputField,OutputField;
private JButton test,quit,going;
private Data newTestData = new Data(); //存储被测试数据
public DataTestFace()
{
window=new JFrame("入侵检测系统:测试新数据");
window.setSize(WINDOW_WIDTH,WINDOW_HEIGHT);
window.setFont(new Font("Simsun",Font.PLAIN,14));
Container c=window.getContentPane();
c.setLayout(new GridBagLayout());
GridBagConstraints gc=new GridBagConstraints();
InputLable=new JLabel("输入测试数据");
InputLable.setFont(new Font("Simsun",Font.PLAIN,14));
InputField=new JTextField(FILED_WIDTH);
gc.gridx=0;
gc.gridy=1;
gc.gridwidth=1;
c.add(InputLable,gc);
gc.gridx=1;
gc.gridy=1;
c.add(InputField,gc);
OutputLabel=new JLabel("新数据类型输出");
OutputLabel.setFont(new Font("Simsun",Font.PLAIN,14));
OutputField=new JTextField(FILED_WIDTH);
gc.gridx=0;
gc.gridy=2;
gc.gridwidth=1;
c.add(OutputLabel,gc);
gc.gridx=1;
gc.gridy=2;
c.add(OutputField,gc);
JPanel panel=new JPanel();
test=new JButton("测试");
test.setFont(new Font("Simsun",Font.PLAIN,14));
test.addActionListener(this);
test.setActionCommand("test");
panel.add(test);
going=new JButton("继续");
going.setFont(new Font("Simsun",Font.PLAIN,14));
going.addActionListener(this);
going.setActionCommand("going");
panel.add(going);
quit=new JButton("退出");
quit.setFont(new Font("Simsun",Font.PLAIN,14));
quit.addActionListener(this);
quit.setActionCommand("quit");
panel.add(quit);
gc.gridx=0;
gc.gridy=5;
gc.gridwidth=2;
c.add(panel,gc);
window.setLocation(200,300);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
String s=e.getActionCommand();
if(s.equals("test"))
{
String tempbuffer = new String();
tempbuffer = InputField.getText();
StringTokenizer analyse = new StringTokenizer(tempbuffer,",");
int n = analyse.countTokens();//n = 10
System.out.println("n = "+n);
for(int k = 0;k < n-1;k++)
{
tempbuffer = analyse.nextToken();
newTestData.data[k] = Float.parseFloat(tempbuffer);
}
System.out.println("test OK");
// for(int i = 0;i < n;i++)
// System.out.println(newTestData.data[i]);
double distance = GetDistance(0);
int j = 0; //与测试数据距离小的原数据的索引
for(int i = 1;i < ReadData.noSameNumber;i++)
{
if(distance > GetDistance(i))
{
distance = GetDistance(i);
j = i;
}
}
OutputField.setText(ReadData.dataArray[j].type);
DataTest.mOutput.append("数据"+InputField.getText()+"类型测试为:"+ReadData.dataArray[j].type+"\n");
}
else if(s.equals("going"))
{
InputField.setText("");
OutputField.setText("");
System.out.println("going OK");
DataTest.mOutput.append("继续测试\n");
}
else
{
window.dispose();
}
}
private float GetDistance(int m) //求被测试数据与已知数据间的距离
{
double temp = 0;
for(int j = 0;j < DealData.attribute;j++) //attribute为每条数据的数据属性个数
{
temp += Math.pow((newTestData.data[j] - ReadData.dataArray[m].data[j]),2);
}
return (float) temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -