Текст книги "Java Code"
Автор книги: Алексей Крючков
Жанр: Программирование, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 2 (всего у книги 3 страниц)
Пример проигрывания звука в android
void soundTime(int t){
toast(«СИГНАЛ ЧЕРЕЗ „+t/60+“ МИН.»);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mp= MediaPlayer.create(Sirena.this,R.raw.alarm);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.release();
}
});
mp.setLooping(true);
mp.start();
b.setEnabled(true);
b.setText(«ПОДЪЁМ!!!»);
}
},1000*t);
}
Путь до директории с исполняемым файлом
Код определяет путь до директории где находиться исполняемый архив(jar) с программой. Может понадобиться при необходимости создания/удаления или(и) записи/чтения файлов из этой директории.
import java.io.File;
public class TestClass {
public static void main(String[] args) {
String myJarPath = TestClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();
String dirPath = new File(myJarPath).getParent();
System.out.println(dirPath);
}
}
Расчет гороскопов и психоматрицы(квадрат Пифагора)
Этот код может помочь при разработке какого-нибудь астрологического или нумерологического софта.
int ostHoroscope(int n){
while (n>12){
n-=12;
}
return n;
}
int zodiac(int n,int month){
int f;
if (month==3&&n>20||month==4&&n<21)f=1;
else if (month==4&&n>20||month==5&&n<22)f=2;
else if (month==5&&n>21||month==6&&n<22)f=3;
else if (month==6&&n>21||month==7&&n<23)f=4;
else if (month==7&&n>22||month==8&&n<22)f=5;
else if (month==8&&n>21||month==9&&n<24)f=6;
else if (month==9&&n>23||month==10&&n<24)f=7;
else if (month==10&&n>23||month==11&&n<23)f=8;
else if (month==11&&n>22||month==12&&n<23)f=9;
else if (month==12&&n>22||month==1&&n<21)f=10;
else if (month==1&&n>20||month==2&&n<20)f=11;
else if (month==2&&n>19||month==3&&n<21)f=12;
else return 13;
return f;
}
int slavian(int n,int month){
int f;
if (month==3&&n>9||month==4&&n<11)f=1;
else if (month==4&&n>9||month==5&&n<11)f=2;
else if (month==5&&n>9||month==6&&n<11)f=3;
else if (month==6&&n>9||month==7&&n<11)f=4;
else if (month==7&&n>9||month==8&&n<11)f=5;
else if (month==8&&n>9||month==9&&n<11)f=6;
else if (month==9&&n>9||month==10&&n<11)f=7;
else if (month==10&&n>9||month==11&&n<11)f=8;
else if (month==11&&n>9||month==12&&n<11)f=9;
else if (month==12&&n>9||month==1&&n<11)f=10;
else if (month==1&&n>9||month==2&&n<11)f=11;
else if (month==2&&n>9||month==3&&n<11)f=12;
else return 13;
return f;
}
int egypt(int n,int month){
int f;
if (month==1&&n>0&&n<8||month==6&&n>18&&n<29||month==9&&n>0&&n<8||month==11&&n>17&&n<27)f=1;
else if (month==1&&n>7&&n<22||month==2&&n>0&&n<12)f=2;
else if (month==1&&n>21&&n<32||month==9&&n>7&&n<23)f=3;
else if (month==2&&n>11&&n<30||month==8&&n>19&&n<32)f=4;
else if (month==3&&n>10&&n<32||month==10&&n>17&&n<30||month==12&&n>18&&n<32)f=5;
else if (month==3&&n>0&&n<11||month==11&&n>26||month==12&&n<19)f=6;
else if (month==4&&n>0&&n<20||month==11&&n>7&&n<18)f=7;
else if (month==5&&n>0&&n<8||month==4&&n>19&&n<31||month==8&&n>11&&n<20)f=8;
else if (month==5&&n>7&&n<28||month==6&&n>28||month==7&&n<14)f=9;
else if (month==5&&n>27||month==6&&n<19||month==9&&n>27||month==10&&n<3)f=10;
else if (month==7&&n>13&&n<29||month==9&&n>22&&n<28||month==10&&n>2&&n<18)f=11;
else if (month==7&&n>28||month==8&&n<12||month==10&&n>29||month==11&&n<8)f=12;
else return 13;
return f;
}
String psychoMatrix(int n,int m,int l){
int[]mas=new int[16];
mas[0] = n / 10;
mas[1] = n % 10;
int c;
int z;
if (mas[0] == 0)
{
c= mas[1];
} else
{
c= mas[0];
}
mas[4]= m % 10;
z = m / 10;
mas[5] = z % 10;
z = z / 10;
mas[6] = z % 10;
z = z / 10;
mas[7]=z;
if(l<10){
mas[2]=0;
mas[3]=l;
}else{
mas[2]=1;
mas[3]=l-10;
}
int sum = mas[0] + mas[1] + mas[2] + mas[3] + mas[4] + mas[5] + mas[6] + mas[7];
mas[8] = sum/ 10;
mas[9] = sum % 10;
mas[10] = (mas[8]+mas[9])/ 10;
mas[11] = (mas[8]+mas[9])% 10;
mas[12] = (sum-(2*c)) / 10;
mas[13] = (sum-(2*c)) % 10;
mas[14] = (mas[12]+mas[13]) / 10;
mas[15] = (mas[12]+mas[13]) % 10;
String str1="«,str2=»",str3="«,str4=»",str5="«,str6=»",str7="«,str8=»",str9="";
for (int i=0;i<16;i++){
switch (mas[i]){
case 0:break;
case 1:str1+="1";break;
case 2:str2+="2";break;
case 3:str3+="3";break;
case 4:str4+="4";break;
case 5:str5+="5";break;
case 6:str6+="6";break;
case 7:str7+="7";break;
case 8:str8+="8";break;
case 9:str9+="9";break;default:break;
}
}
return «Психоматрица: n»+str1+" «+str2+» «+str3+»n"+str4+" «+str5+» «+str6+»n"+str7+" «+str8+» "+str9;
}
Класс клавиатурного калькулятора(javaFX)
public class FXMLCalculatorController implements Initializable {
@FXML
private TextArea t;
@FXML
private TextField e;
float[]m;
float result;
int i=-1;
int[]oper;
@FXML
private void resultButton(ActionEvent event) {
resultate();
}
@FXML
private void plus(ActionEvent event){
fb(1,"+");
}
@FXML
private void minus(ActionEvent event){
fb(2, "-");
}
@FXML
private void gPlus(ActionEvent event){
fb(3, "*");
}
@FXML
private void gMinus(ActionEvent event){
fb(4, "/");
}
@FXML
private void clean(ActionEvent event){
clean();
}
@FXML
private void keyAction(KeyEvent event){
switch(event.getText()){
case "+":
fb(1, "+");
break;
case "-":
fb(2, "-");
break;
case "*":
fb(3, "*");
break;
case "/":
fb(4, "/");
break;
case "=":
resultate();
break;
case "c":
clean();
break;
case "с":
clean();
break;
default:
break;
}
if(event.getCode().getName().equals(«Enter»)){
resultate();
}
if(event.getCode().getName().equals(«Delete»)){
clean();
}
}
@FXML
private void keyPostAction(KeyEvent event){
if(event.getText().equals("*")||event.getText().equals("/")||
event.getText().equals("c")||event.getText().equals("с")) {
e.setText("");
}
if(e.getText().contains("=")){
e.setText(e.getText().substring(1));
}
}
void resultate(){
i++;
if(i>19){
alertWindow(«Угроза переполнения!»,"Внимание!");
return;
}
try{
m[i]=Float.parseFloat(e.getText());
}catch(NumberFormatException ex){
ex.getMessage();
i–;
e.setText("");
e.requestFocus();
return;
}
t.appendText(m[i]+"=");
switch (oper[0]){
case 1:result=m[0]+m[1];break;
case 2:result=m[0]-m[1];break;
case 3:result=m[0]*m[1];break;
case 4:result=m[0]/m[1];break;
}
for (int j=1;j<i+1;j++){
switch (oper[j]){
case 1:result+=m[j+1];break;
case 2:result-=m[j+1];break;
case 3:result*=m[j+1];break;
case 4:result/=m[j+1];break;
}
}
e.setText(result+"");
}
void fb(int n,String s){
i++;
if(i>18){
i–;
alertWindow(«Угроза переполнения!»,"Внимание!");
return;
}
try{
m[i]=Float.parseFloat(e.getText());
}catch(NumberFormatException ex){
ex.getMessage();
i–;
e.setText("");
e.requestFocus();
return;
}
e.setText("");
e.requestFocus();
oper[i]=n;
t.appendText(m[i]+""+s);
}
void clean(){
i=-1;
result=0;
m=new float[20];
oper=new int[20];
t.setText("");
e.setText("");
e.requestFocus();
}
void alertWindow(String s,String str){
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle(str);
alert.setHeaderText(null);
alert.setContentText(s);
alert.showAndWait();
}
@Override
public void initialize(URL url, ResourceBundle rb) {
m=new float[20];
oper=new int[20];
e.requestFocus();
}
}
Консольный калькулятор
public class CalculatorConsole {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String answer,symbol;
float num1=0,num2=0,result=0;
Scanner sc=new Scanner(System.in);
do{
System.out.println(«Первое число:»);
try{
num1=sc.nextFloat();
}catch(Exception e){
System.out.println(«Некорректное значение»);
return;
}
Scanner scSymb=new Scanner(System.in);
System.out.println(«Знак:»);
symbol=scSymb.nextLine();
if(!"+".equals(symbol)&&!"-".equals(symbol)&&!"*".equals(symbol)&&!"/".equals(symbol)){
System.out.println(«Некорректный символ»);
return;
}
System.out.println(«Второе число:»);
try{
num2=sc.nextFloat();
}catch(Exception e){
System.out.println(«Некорректное значение»);
return;
}
switch(symbol){
case "+":
result=plus(num1, num2);
break;
case "-":
result=minus(num1, num2);
break;
case "*":
result=multiPlus(num1, num2);
break;
case "/":
result=multiMinus(num1, num2);
break;
default:
break;
}
System.out.println(num1+symbol+num2+"="+result);
Scanner scAns=new Scanner(System.in);
System.out.println(«Начать заново?(д/н)»);
answer=scAns.nextLine();
if(!"д".equals(answer)&&!"y".equals(answer)){
System.out.println(«Работа программы завершена»);
return;
}
}while ("д".equals(answer)||"y".equals(answer));
}
static float plus(float a,float b){
return a+b;
}
static float multiPlus(float a,float b){
return a*b;
}
static float minus(float a,float b){
return a-b;
}
static float multiMinus(float a,float b){
return a/b;
}
}
Запуск браузера(android)
Uri wp = Uri.parse(«http://www.сайт»);
Intent webIntent = new Intent(Intent.ACTION_VIEW, wp);
startActivity(webIntent);
Класс простого ридера(javaFX)
Самый простой ридер какой может быть.
public class FXMLReaderController implements Initializable {
@FXML
private TextArea t;
@FXML
private void openButton(ActionEvent event) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle(«Открытие файла»);
File file = fileChooser.showOpenDialog(null);
if (file != null) {
t.setText(readerFile(file.getAbsolutePath()));
}
}
String readerFile(String s){
String str,f="";
try{
File file=new File(s);
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
while((str = br.readLine()) != null){
f+=str+"n";
}
}catch(IOException e){
e.getMessage();
}
return f;
}
@Override
public void initialize(URL url, ResourceBundle rb) {
t.setText(«Программа для чтения текстовых файлов»);
}
}
Вызов SMS-клиента(android)
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra(«sms_body», «текст_сообщения»);
sendIntent.setType(«vnd.android-dir/mms-sms»);
startActivity(sendIntent);
Текстовый квест для android
Разбиваем текст на пронумерованные части и сохраняем их в виде txt в папке assets, откуда и читаем их при помощи метода read(int n)(см. ниже).
public class Quest extends AppCompatActivity {
EditText input;
TextView text;
ScrollView s;
File sdPath,sdFile;
int m=0;
final int newGame=1,showHistory=2,closeHistory=3,exit=4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quest);
input=(EditText)findViewById(R.id.editText);
text=(TextView)findViewById(R.id.textView);
s=(ScrollView)findViewById(R.id.scrollView);
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Toast.makeText(getApplicationContext(),"Память недоступна", Toast.LENGTH_SHORT).show();
return;
}
sdPath = Environment.getExternalStorageDirectory();
sdPath = new File(sdPath.getAbsolutePath() + "/" + «TextQuest»);
sdFile = new File(sdPath, «history»);
if (!sdPath.exists()) {
sdPath.mkdirs();
text.setText(read(1));
writeFile("0",true);
}else {
input.setText(readHistory(true));
m=1;
go(null);
m=0;
}
}
public void go(View view){
int n;
try{
n=Integer.parseInt(input.getText().toString());
}catch(NumberFormatException e){
Toast.makeText(getApplicationContext(),"введите номер пункта",Toast.LENGTH_SHORT).show();
input.setText("");
input.requestFocus();
return;
}
if(n>350||n<0){
Toast.makeText(getApplicationContext(),"номер за пределами диапазона",Toast.LENGTH_SHORT).show();
input.setText("");
input.requestFocus();
return;
}
text.setText(read(n+1));
if(m==0){
writeFile(n+"",true);
}
input.setText("");
s.scrollTo(0,0);
}
String readHistory(boolean b){
String str="«,f=»";
try {
BufferedReader br = new BufferedReader(new FileReader(sdFile));
while ((str = br.readLine()) != null) {
if (b)
f=str;
else
f+=str+"->";
}
} catch (FileNotFoundException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();
}
return f;
}
String read(int n){
String str,f="";
try {
BufferedReader reader=new BufferedReader(new InputStreamReader(getAssets().open(n+".txt")));
str=reader.readLine();
while (str!=null){
f+=str+"n";
str=reader.readLine();
}
reader.close();
}
catch (IOException e){
Toast.makeText(getApplicationContext(),"ERROR FILE OPEN!", Toast.LENGTH_SHORT).show();
}
return f;
}
void writeFile(String s,boolean b){
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(sdFile,b));
bw.write(s+"n");
bw.close();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),"Произошла ошибка", Toast.LENGTH_SHORT).show();
return;
}
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.quest, menu);
menu.add(0,newGame,0,"Начать Заново");
menu.add(0,showHistory,0,"Показать историю");
menu.add(0,closeHistory,0,"Скрыть историю");
menu.add(0,exit,0,"ВЫХОД");
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case newGame:
text.setText(read(1));
writeFile("0", false);
s.scrollTo(0,0);
break;
case showHistory:
text.setText(readHistory(false));
s.scrollTo(0,0);
break;
case closeHistory:
input.setText(readHistory(true));
m=1;
go(null);
m=0;
s.scrollTo(0,0);
break;
case exit:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
Конструктор текстовых тестов(с функцией тестирования)
Текстовый тест это тест без всяческих изображений, схем или диаграмм. Просто задаются вопросы с пронумерованными вариантами ответов и пользователь выбирает номер верного по его мнению ответа.
@FXML
private void nextQuestionAction(ActionEvent event) {
if("".equals(t.getText())){
alertWindow("", «Введите вопрос и варианты ответа», «Ошибка»);
return;
}
if("".equals(cb.getValue())){
alertWindow("", «Выберите вариант ответа», «Ошибка»);
return;
}
if(r==1){
recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы1", true);
recordInFile(t.getText(),testPath+System.getProperty(separator)+volumeAnswers(«ответы1»),false);
l3.setText(«Вопрос №»+volumeAnswers(«ответы1»)+" сохранен");
t.setText("");
cb.setValue("");
}else{
calc++;
if(calc==volumeAnswers(«ответы1»)){
b.setText(«результат»);
}
if(calc>volumeAnswers(«ответы1»)){
calc=0;
recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы2", true);
recordInFile(«n»+dayDateAndTime()+"n"+userName()+"n"+resultsTest(),testPath+
System.getProperty(separator)+"результаты", true);
showMessage(resultsTest(),"Тест завершен","Результат");
recordInFile(«„,testPath+System.getProperty(separator)+“ответы2», false);
cleanAll();
b.setText(«следующий вопрос»);
b.setDisable(true);
t.setEditable(false);
return;
}
t.setText(readerFile(testPath+System.getProperty(separator)+calc));
recordInFile(cb.getValue(),testPath+System.getProperty(separator)+"ответы2", true);
l3.setText("Вопрос № «+calc+». Осталось вопросов: "+(volumeAnswers(«ответы1»)-calc));
cb.setValue("");
}
}
@FXML
private void openItem(ActionEvent event){
DirectoryChooser dc = new DirectoryChooser();
dc.setTitle(«Открытие теста»);
dc.setInitialDirectory(new File(path));
File file = dc.showDialog(null);
if(file!=null){
testPath=file.getAbsolutePath();
if(!new File(testPath+System.getProperty(separator)+"ответы1").exists()){
alertWindow("", «Тест „+file.getName()+“ пока пустой.Дополните его», «Внимание!»);
return;
}
if(volumeAnswers(«ответы2»)!=0){
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle(«ВНИМАНИЕ!»);
alert.setHeaderText(«Тест не пройден!»);
alert.setContentText(«Хотите продолжить?»);
Optional<ButtonType> resultAlert = alert.showAndWait();
if (resultAlert.get() == ButtonType.OK){
t.setText(readerFile(testPath+System.getProperty(separator)+(volumeAnswers(«ответы2»)+1)));
l3.setText("Вопрос № «+(volumeAnswers(„ответы2“)+1)+». Осталось вопросов: "+(volumeAnswers(«ответы1»)-volumeAnswers(«ответы2»)-1));
l1.setText(file.getName());
l2.setText(«тестирование»);
if((volumeAnswers(«ответы1»)-volumeAnswers(«ответы2»)-1)==0){
b.setText(«результат»);
}else{
b.setText(«следующий вопрос»);
}
b.setDisable(false);
t.setEditable(false);
calc=volumeAnswers(«ответы2»)+1;
r=0;
return;
}
}
t.setText(readerFile(testPath+System.getProperty(separator)+"1"));
recordInFile(«„,testPath+System.getProperty(separator)+“ответы2», false);
l3.setText("Вопрос № 1. Осталось вопросов: "+(volumeAnswers(«ответы1»)-1));
l1.setText(file.getName());
l2.setText(«тестирование»);
if((volumeAnswers(«ответы1»)-1)==0){
b.setText(«результат»);
}else{
b.setText(«следующий вопрос»);
}
b.setDisable(false);
t.setEditable(false);
calc=1;
r=0;
}
}
@FXML
private void createItem(ActionEvent event){
TextInputDialog dialog = new TextInputDialog("тест "+new Random().nextInt(10000));
dialog.setTitle(«Создание теста»);
dialog.setHeaderText(«Введите название нового теста»);
dialog.setContentText(«Название теста:»);
Optional<String> name = dialog.showAndWait();
if(name.isPresent()&&!"".equals(name.get())){
testPath=path+System.getProperty(separator)+name.get();
File f=new File(testPath);
if(f.exists()){
alertWindow("", «Тест с таким названием уже имеетсяnВыберите другое название», «Ошибка»);
return;
}else{
f.mkdir();
}
l1.setText(f.getName());
l2.setText(«конструирование»);
l3.setText("");
b.setText(«следующий вопрос»);
b.setDisable(false);
t.setEditable(true);
t.setText("");
r=1;
}
}
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.