Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Додаток Л. Лістинг програми «Голосовий калькулятор-2»






Лістинг програми «Голосовий калькулятор-2»

package edu.cmu.sphinx.demo.helloworld;

import javax.swing.*;

import java.awt.FlowLayout;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.awt.*;

import java.awt.event.*;

import java.lang.*;

import java.awt.event.FocusEvent;

import java.awt.event.FocusAdapter;

import edu.cmu.sphinx.frontend.util.Microphone;

import edu.cmu.sphinx.recognizer.Recognizer;

import edu.cmu.sphinx.result.Result;

import edu.cmu.sphinx.util.props.ConfigurationManager;

public class SimpleCalculator {

//Текстовое поле, в которое будут помещаться цифры

public static JTextField jtfText, jtfText2;

//Объект класса потока, в котором слушается микрофон

public static Changer k;

public static String[] args1;

public static JTextField answer;

public static void main(String[] args) {

//Создание и запуск потока-слушателя микрофона

k = new Changer();

k.start();

args1 =args;

// Создаём панель

JPanel windowContent= new JPanel();

//Создаём компоненты в памяти

JLabel label1 = new JLabel(" Say: 1");

label1.setFont(new Font(" Segoe Script", Font.BOLD, 13));

label1.setBounds(76, 39, 69, 14);

jtfText = new JTextField(10);

jtfText.setBounds(137, 36, 138, 20);

JLabel label2 = new JLabel(" Say: 2");

label2.setFont(new Font(" Segoe Script", Font.BOLD, 13));

label2.setBounds(76, 94, 91, 13);

jtfText2 = new JTextField(10);

jtfText2.setBounds(137, 90, 138, 20);

JLabel label3 = new JLabel(" The answer is: ");

label3.setFont(new Font(" Segoe Script", Font.BOLD, 17));

label3.setBounds(69, 186, 146, 14);

answer = new JTextField(10);

answer.setBounds(215, 184, 108, 20);

JButton go = new JButton(" +");

go.addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

int key = e.getKeyCode()

if (key == KeyEvent.VK_ENTER) { // нажата клавиша - Enter

//Твой код здесь

int number1, number2;

try{if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad first number! ");

return; }

try{ (! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad second number! ");

return;

//считаем сумму

int answer1 = number1 + number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); } }

go.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int number1, number2;

try{if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad first number! ");

return;

try{ (! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad second number! ");

return; }

//считаем сумму

int answer1 = number1 + number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); } }

go.setBounds(127, 134, 69, 23);

windowContent.setLayout(null);

//Добавляем компоненты на панель

windowContent.add(label1);

windowContent.add(jtfText);

windowContent.add(label2);

windowContent.add(jtfText2);

windowContent.add(label3);

windowContent.add(answer);

windowContent.add(go);

//Создаём фрейм и задаём для него панель

JFrame jfFrame = new JFrame(" Calculator");

jfFrame.setTitle(" Calculator-2");

jfFrame.setContentPane(windowContent);

JButton button = new JButton(" -");

button.addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

int key = e.getKeyCode();

if (key == KeyEvent.VK_ENTER) { // нажата клавиша - Enter

//Твой код здесь

int number1, number2;

try{if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad first number! ");

return; }

try{ if(! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad second number! ");

return; }

//считаем разницу

int answer1 = number1 - number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); } }});

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int number1, number2;

try{if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad first number! ");

return; }

try{if(! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc) {

JOptionPane.showMessageDialog(null, " Bad second number! ");

return; }

//считаем разницу

int answer1 = number1 - number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); } });

button.setBounds(206, 134, 69, 23);

windowContent.add(button);

JLabel imageLabel = new JLabel(new ImageIcon(SimpleCalculator.class.getResource(" /edu/cmu/sphinx/demo/helloworld/siri-icon-e1328732646576.jpg")));

windowContent.add(imageLabel);

imageLabel.setBounds(10, 215, 374, 151);

//задаём и размер и делаем фрейм видимым

jfFrame.setSize(400, 400);

jfFrame.setVisible(true);

jfFrame.addWindowListener(new WinAdapter(jfFrame)); }

//Класс для потока-прослушивателя микрофона

public static class Changer extends Thread

{ private static final String String = null;

public void run()

{ String[] args=args1;

//Инициализация послушивания микрофона

ConfigurationManager cm;

if (args.length > 0)

{ cm = new ConfigurationManager(args[0]); }

else

{ cm =

new ConfigurationManager(SimpleCalculator.class.getResource(" helloworld.config.xml"); }

Recognizer recognizer = (Recognizer) cm.lookup(" recognizer");

recognizer.allocate();

// start the microphone or exit if the programm if this is not possible

Microphone microphone = (Microphone) cm.lookup(" microphone");

if (! microphone.startRecording())

{System.out.println(" Cannot start microphone.");

recognizer.deallocate();

System.exit(1); }

//Цикл идентификации чисел и их добвления в текстовое поле

while (true) {

System.out.println(" Start speaking. Press Ctrl-C to quit.\n");

Result result = recognizer.recognize();

if (result! = null) {

String resultText = result.getBestFinalResultNoFiller();

System.out.println(resultText);

//addNum(getStringNumber(resultText));

//addNum1(getStringNumber(resultText));

if(resultText.equalsIgnoreCase(" plus")) plus1();

if(resultText.equalsIgnoreCase(" minus")) minus1();

if(resultText.equalsIgnoreCase(" one clear")) clear();

if(resultText.equalsIgnoreCase(" two clear")) clear1();

if(resultText.equalsIgnoreCase(" clear")) clear2();

if(resultText.equalsIgnoreCase(" one back")) removeL();

if(resultText.equalsIgnoreCase(" two back")) removeL2();

if(resultText.equalsIgnoreCase(" one")) focusLost();

if(resultText.equalsIgnoreCase(" two")) focusLost2(); }

//end of if (result! = null) }

//end of while (true) }

//end of public void run() }

// end of public static class Changer extends Thread

//Класс-адаптер, используемый для обработки события закрытия окна

public static class WinAdapter extends WindowAdapter

{JFrame jf1;

public WinAdapter(JFrame jf)

{jf1 = jf; }

public void windowClosing(WindowEvent we)

{ jf1.setVisible(false);

System.exit(0); } }

//действия, которые произойдут после нажатии кнопки +

public static void plus1() {

int number1, number2;

 

//Выводим сообщение об ошибке, если не введена одна из цифр

try{ if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{ JOptionPane.showMessageDialog(null, " Bad first number! ");

return; }

try{ if(! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc)

{ JOptionPane.showMessageDialog(null, " Bad second number! ");

return; }

//считаем сумму

int answer1 = number1 + number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); }

//стираем все в поле jtfText

public static void clear() {

jtfText.setText(" "); }

public static void clear1() {

jtfText2.setText(" "); }

public static void clear2() {

jtfText.setText(" ");

jtfText2.setText(" "); }

//действия, которые произойдут после нажатии кнопки +

public static void minus1() {

int number1, number2;

//Выводим сообщение об ошибке, если не введена одна из цифр

try{ if(! jtfText.getText().isEmpty())

number1 = Integer.parseInt(jtfText.getText());

else number1 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad first number! ");

return; }

try{ if(! jtfText2.getText().isEmpty())

number2 = Integer.parseInt(jtfText2.getText());

else number2 = 0; }

catch (Exception exc)

{JOptionPane.showMessageDialog(null, " Bad second number! ");

return; }

//считаем разницу

int answer1 = number1 - number2;

//переводим цифры в String

String s1 = Integer.toString(answer1);

answer.setText(s1); }

//Метод, используемый для удаления последнего символа из текста в текстовому полю jtfText

public static void removeL()

{ String sVal;

String sText = jtfText.getText();

if (sText == null || sText.length() == 0) {

return; }

sVal = sText.substring(0, sText.length() - 1);

sText = sVal;

jtfText.setText(sText); }

//Метод, используемый для удаления последнего символа из текста в текстовому полю jtfText

public static void removeL2()

{ String sVal;

String sText = jtfText2.getText();

if (sText == null || sText.length() == 0) { return; }

sVal = sText.substring(0, sText.length() - 1);

sText = sVal;

jtfText2.setText(sText); }

//Передача фокуса на поле jtfText

public static void focusLost(){

jtfText.requestFocusInWindow(); }

//Передача фокуса на поле jtfText2

public static void focusLost2(){

jtfText2.requestFocusInWindow(); }

//Метод, используемый для добавления текста sVal к текстовому полю jtfText

public static void addNum(String sVal)

{ String sText = jtfText.getText();

sText+= sVal;

jtfText.setText(sText); }

//Метод, используемый для добавления текста sVal к текстовому полю jtfText

public static void addNum1(String sVal)

{ String sText = jtfText2.getText();

sText+= sVal;

jtfText2.setText(sText); }}

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.