一次考试_AI人工智能
1. 要求


2.Code
GUI:
package com.xs.RAGUI.ZZP;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.*;
public class test {
private JFrame mainFrame = new JFrame("人工智能?");
// 定义一个复选框
private JCheckBox changeEngMark = new JCheckBox("替换英文标点");
// 定义一个JList对象
private JList bookList;
// 定义一个DefaultListModel对象
private DefaultListModel bookModel = new DefaultListModel();
private JTextField askTest = new JTextField(20);
private JButton clearBn = new JButton("清空列表");
private JButton addBn = new JButton("询问");
private ArrayList<String> arrStr = new ArrayList<String>();
public test() {
init();
}
private void init() {
arrStr.add("我:我会写Java吗?" );
arrStr.add("AI :你会写Java!");
// 向bookModel中添加元素
bookModel.addElement("我:我会写Java吗? ");
bookModel.addElement("AI :这你得问詹姆斯·高斯林老师!");
// 根据DefaultListModel对象创建一个JList对象
bookList = new JList(bookModel);
// 设置最大可视高度
bookList.setVisibleRowCount(4);
// 只能单选
bookList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// 为问题添加按钮添加事件监听器
addBn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// 当bookName文本框的内容不为空。
if (!askTest.getText().trim().equals("")) {
// 向bookModel中添加一个元素,系统自动会向JList中添加对应的列表项
arrStr.add("我:"+askTest.getText());
arrStr.add("AI :"+StrOperation.PassMeMeda(askTest.getText()));
bookModel.addElement("我:"+askTest.getText());
bookModel.addElement("AI :"+StrOperation.PassMeMeda(askTest.getText()));
askTest.setText(null);
}else {
JOptionPane.showMessageDialog(mainFrame, "你不说话我怎么回答.");
}
}
});
changeEngMark.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (changeEngMark.isSelected()) {
askTest.setText(null);
bookModel.clear();
for (String str : arrStr) {
str = StrOperation.ToSBC(str);
bookModel.addElement(str);
}
}else {
askTest.setText(null);
bookModel.clear();
for (String str : arrStr) {
str = StrOperation.ToDBC(str);
bookModel.addElement(str);
}
}
}
});
// 为清空按钮添加事件监听器
clearBn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// 如果不为空
if (bookModel.size() > 0 ) {
bookModel.clear();
arrStr.clear();
}else {
JOptionPane.showMessageDialog(mainFrame, "已经很干净了老铁!");
}
}
});
JPanel p = new JPanel();
p.add(askTest);
p.add(addBn);
p.add(clearBn);
// 添加bookList组件
mainFrame.setLocation(200, 300);
mainFrame.add(changeEngMark,BorderLayout.NORTH);
mainFrame.add(new JScrollPane(bookList));
// 将p面板添加到窗口中
mainFrame.add(p, BorderLayout.SOUTH);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.pack();
}
public void showFrame() {
mainFrame.setVisible(true);
}
public static void main(String[] args) {
new test().showFrame();
}
}
功能逻辑:
StrOperation
package com.xs.RAGUI.ZZP;
public class StrOperation {
static public String Ma = "吗么嘛";
public Boolean isEng(String str){
return null;
}
static public String ToSBC(String input)
{ //半角转全角:
char[] c=input.toCharArray();
for (int i = 0; i < c.length; i++){
if (c[i]==32){
c[i]=(char)12288; continue;
}
if (c[i]<127) c[i]=(char)(c[i]+65248);
}
return new String(c);
}
static public String ToDBC(String input)
{
char[] c=input.toCharArray();
for (int i = 0; i < c.length; i++)
{
if (c[i]==12288)
{
c[i]= (char)32; continue;
}
if (c[i]>65280 && c[i]<65375)
c[i]=(char)(c[i]-65248);
}
return new String(c);
}
static public String PassMeMeda(String str) // 去掉 吗 么 嘛 及其其他
{
String ans = "";
for(int i = 0 ;i< str.length() ;i++) {
boolean isMa = false;
for(int j =0 ;j<3 ;j++) {
if(str.substring(i, i+1).equals(Ma.substring(j, j+1))) {
isMa = true;
break;
}
}
if(!isMa) {
if (str.substring(i, i+1).equals("我")) {
ans = ans + "你";
}else if(str.substring(i, i+1).equals("你")) {
ans = ans + "我";
}else if(str.substring(i, i+1).equals("?")){
ans = ans + "!";
}else if(str.substring(i, i+1).equals("?")){
ans = ans + "!";
}
else
{
ans = ans + str.substring(i, i+1);
}
}
}
return ans;
}
public static void main(String[] args) {
String ab =StrOperation.PassMeMeda("你会说英语吗?");
System.out.println(ab);
}
}

本文介绍了Java的一次GUI考试,涵盖了考试的要求和代码实现,主要关注GUI界面及其功能逻辑。

476

被折叠的 条评论
为什么被折叠?



