您的位置:首页 > 编程语言

第4次作业类测试代码+119+陈云鹏

2017-05-03 16:26 513 查看
类图:



代码部分:

1 package sample;
2
3 import javafx.application.Application;
4 import javafx.event.EventHandler;
5 import javafx.fxml.FXMLLoader;
6 import javafx.scene.Parent;
7 import javafx.scene.Scene;
8 import javafx.scene.control.Alert;
9 import javafx.scene.control.Button;
10 import javafx.scene.control.TextField;
11 import javafx.scene.input.MouseEvent;
12 import javafx.stage.Stage;
13
14 import java.text.ParseException;
15 import java.text.SimpleDateFormat;
16 import java.util.Calendar;
17
18
19 public class Main extends Application {
20
21      static boolean next=false;
22     @Override
23     public void start(Stage primaryStage) throws Exception {
24         Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
25         primaryStage.setTitle("计算日期--陈云鹏");
26         primaryStage.setScene(new Scene(root, 400, 350));
27         TextField mTextFiled_Year = (TextField) root.lookup("#textField_Year");
28         TextField mTextFiled_Month = (TextField) root.lookup("#textField_Month");
29         TextField mTextFiled_Day = (TextField) root.lookup("#textField_Day");
30         TextField mTextFiled_Week = (TextField) root.lookup("#textField_Week");
31         TextField mTextFiled_Previous = (TextField) root.lookup("#textField_Previous");
32         TextField mTextFiled_Next = (TextField) root.lookup("#textField_Next");
33         Button mButton_OK = (Button) root.lookup("#button_OK");
34         mButton_OK.setOnMouseClicked(new EventHandler<MouseEvent>() {
35             @Override
36             public void handle(MouseEvent event) {
37                 try {
38                     int year = Integer.parseInt(mTextFiled_Year.getText());
39                     int month = Integer.parseInt(mTextFiled_Month.getText());
40                     int day = Integer.parseInt(mTextFiled_Day.getText());
41                     String result = nextdate(month, day, year);
42                     if (result.equals("月份超出范围") || result.equals("日期超出范围") || result.equals("年份超出范围") || result.equals("日期不存在")) {
43                         mTextFiled_Week.setText("---");
44                         mTextFiled_Previous.setText("----/--/--");
45                         mTextFiled_Next.setText("----/--/--");
46                     } else {
47                         next = false;
48                         mTextFiled_Previous.setText(nextdate(month, day, year));//前一天
49                         next = true;
50                         mTextFiled_Next.setText(nextdate(month, day, year));//后一天
51                         mTextFiled_Week.setText(getWeek(month, day, year));
52                     }
53                 }
54                 catch (Exception e){
55                     Alert alert = new Alert(Alert.AlertType.INFORMATION);
56                     alert.setHeaderText("请输入数字");
57                     alert.show();
58                 }
59             }
60         });
61         primaryStage.show();
62     }
63
64     public static String nextdate(int month, int day, int year) {
65         if (month < 1 || month > 12)
66             return "月份超出范围";
67         if (day < 1 || day > 31)
68             return "日期超出范围";
69         if (year < 1912 || year > 2050)
70             return "年份超出范围";
71         SimpleDateFormat sFormat = new SimpleDateFormat("yyyyMMdd");
72         sFormat.setLenient(false);
73         try {
74             Calendar c = Calendar.getInstance();
75             c.setTime(sFormat.parse("" + year + String.format("%02d", month) + String.format("%02d", day)));
76             if(next)
77             c.add(Calendar.DATE, 1);
78             else   c.add(Calendar.DATE, -1);
79             return c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1) + "月" + c.get(Calendar.DATE) + "日";
80         } catch (ParseException e) {
81             return "日期不存在";
82         }
83     }
84
85     public static String getWeek(int month, int day, int year) {
86         String result[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
87         SimpleDateFormat sFormat = new SimpleDateFormat("yyyyMMdd");
88         sFormat.setLenient(false);
89         Calendar c = Calendar.getInstance();
90         try {
91             c.setTime(sFormat.parse("" + year + String.format("%02d", month) + String.format("%02d", day)));
92         } catch (ParseException e) {
93             e.printStackTrace();
94             return "--";
95         }
96         int w = c.get(Calendar.DAY_OF_WEEK) - 1;
97         if (w < 0)
98             w = 0;
99         return result[w];
100     }
101
102     public static void main(String[] args) {
103         launch(args);
104     }
105 }


界面控制:

1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <?import javafx.scene.text.*?>
4 <?import javafx.scene.control.*?>
5 <?import java.lang.*?>
6 <?import javafx.scene.layout.*?>
7 <?import javafx.geometry.Insets?>
8 <?import javafx.scene.layout.GridPane?>
9 <?import javafx.scene.control.Button?>
10 <?import javafx.scene.control.Label?>
11
12 <GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
13    <columnConstraints>
14       <ColumnConstraints />
15    </columnConstraints>
16    <rowConstraints>
17       <RowConstraints />
18    </rowConstraints>
19    <children>
20       <Pane prefHeight="375.0" prefWidth="426.0">
21          <children>
22             <TextField id="textField_Year" layoutX="43.0" layoutY="130.0" prefHeight="23.0" prefWidth="71.0" />
23             <TextField id="textField_Month" layoutX="179.0" layoutY="130.0" prefHeight="23.0" prefWidth="71.0" />
24             <TextField id="textField_Day" layoutX="312.0" layoutY="130.0" prefHeight="23.0" prefWidth="71.0" />
25             <Text layoutX="33.0" layoutY="111.0" strokeType="OUTSIDE" strokeWidth="0.0" text="请输入要计算的年月日" />
26             <Text layoutX="14.0" layoutY="146.0" strokeType="OUTSIDE" strokeWidth="0.0" text="年:" />
27             <Text layoutX="148.0" layoutY="146.0" strokeType="OUTSIDE" strokeWidth="0.0" text="月:" />
28             <Text layoutX="282.0" layoutY="145.0" strokeType="OUTSIDE" strokeWidth="0.0" text="日:" />
29             <Text layoutX="117.0" layoutY="272.0" strokeType="OUTSIDE" strokeWidth="0.0" text="上一天是:" />
30             <Text layoutX="117.0" layoutY="303.0" strokeType="OUTSIDE" strokeWidth="0.0" text="下一天是:" />
31             <Text layoutX="105.0" layoutY="240.0" strokeType="OUTSIDE" strokeWidth="0.0" text="这天星期是:" />
32             <TextField id="textField_Week" editable="false" layoutX="185.0" layoutY="224.0" prefHeight="23.0" prefWidth="120.0" />
33             <TextField id="textField_Previous" editable="false" layoutX="185.0" layoutY="256.0" prefHeight="23.0" prefWidth="120.0" />
34             <TextField id="textField_Next" editable="false" layoutX="185.0" layoutY="287.0" prefHeight="23.0" prefWidth="120.0" />
35             <Button id="button_OK" layoutX="143.0" layoutY="176.0" mnemonicParsing="false" text="OK" />
36             <Button layoutX="225.0" layoutY="176.0" mnemonicParsing="false" text="Cancel" />
37          </children>
38       </Pane>
39    </children>
40 </GridPane>


界面:



这天星期,上一天,下一天不可编辑



输入非法



正确输入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: