Java教程 第49页

Java 本地日期时间-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 本地日期时间

Java日期时间 – Java本地日期时间 本地日期 LocalDate 类表示没有时间或时区的日期。 当时间和时区相关时使用LocalDate。 LocalDate 类包含两个常量,MAX和MIN。 MAX和MIN分别是最大和最小支持的LocalDate。 LocalDate.MAX为+ 999999999-12-31,LocalDate.MIN为-999999999-01-01。 以下代码显示如何创建 LocalDate 对象: import java.time.LocalDate; import java.time.Month; public class Main { public static void main(String[] args) { // Get the current local date LocalDate localDate1 = LocalDate.now(); System.out.println(localDate1); // Create a local date LocalDate localDate2 = LocalDate.of(2014, Month.JUNE, 21); System.out.println(localDate2); // 10000 days after the epoch date 1970-01-01 LocalDate localDate3 = LocalDate.ofEpochDay(10000); System.out.println(localDate3); } } 上面的代码生成以下结果。 例子 以下代码显示如何合并Year和MonthDay以获取LocalDate。 它在未来五年创造圣诞节。 以下代码将为12月25日创建一个MonthDay,并将其合并到一个年份以获取LocalDate。 import java.time.LocalDate; import java.time.Month; import java.time.MonthDay; import java.time.Year; import java.time.format.TextStyle; import java.util.Locale; public class Main { public static void main(String[] args) { MonthDay dec25 = MonthDay.of(Month.DECEMBER, 25); Year year = Year.now(); for (int i = 1; i <= 5; i++) { LocalDate ld = year.plusYears(i).atMonthDay(dec25); int yr =...

Java 年月日-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 年月日

Java日期时间 – Java年月日 年 年表示一年,例如2012年,2013年等。 以下代码显示如何创建Year对象并对其执行基本操作。 import java.time.Year; public class Main { public static void main(String[] args) { Year y1 = Year.of(2014); System.out.println(y1); Year y2 = y1.minusYears(1); System.out.println(y2); Year y3 = y1.plusYears(1); System.out.println(y3); Year y4 = Year.now(); System.out.println(y4); if (y1.isLeap()) { System.out.println(y1 + " is a leap year."); } else { System.out.println(y1 + " is not a leap year."); } } } 上面的代码生成以下结果。 年月 年月表示年和月的有效组合,例如2012-05,2013-09等。 以下代码显示了如何创建Year Month对象并对其执行一些基本操作。 import java.time.Month; import java.time.YearMonth; public class Main { public static void main(String[] args) { YearMonth ym1 = YearMonth.of(2014, Month.JUNE); int monthLen = ym1.lengthOfMonth(); System.out.println(monthLen); int yearLen = ym1.lengthOfYear(); System.out.println(yearLen); } } 上面的代码生成以下结果。 月 Month 枚举有12个常量来表示12个月。 常量名称为 一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月和十二月。 Month 枚举从1到12按顺序编号,其中一月为1,十二月为12。 Month枚举从int值创建一个Month实例。 我们可以使用from()从date对象创建Month。 要获取Month的int值,请使用Month枚举 getValue()方法。 import java.time.LocalDate; import java.time.Month; public class Main { public static...

Java 日期时区-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 日期时区

Java日期时区 ZoneOffset 表示与UTC时区偏移的固定区域。 ZoneOffset不跟踪由夏令时导致的区域偏移的更改。 ZoneOffset类声明三个常量: UTC MAX MIN UTC是UTC的时区偏移常量。 MAX和MIN是最大和最小支持的区域偏移。 Z用作UtC时区的区域偏移指示符。 我们可以用小时,分钟和秒的组合创建 ZoneOffset 。 import java.time.ZoneOffset; public class Main { public static void main(String[] args) { ZoneOffset zoneOffset1 = ZoneOffset.ofHours(-1); System.out.println(zoneOffset1); ZoneOffset zoneOffset2 = ZoneOffset.ofHoursMinutes(6, 30); System.out.println(zoneOffset2); ZoneOffset zoneOffset3 = ZoneOffset.ofHoursMinutesSeconds(9, 30, 45); System.out.println(zoneOffset3); } } 上面的代码生成以下结果。 例2 以下代码显示如何从偏移创建区域偏移。 import java.time.ZoneOffset; public class Main { public static void main(String[] args) { ZoneOffset zoneOffset1 = ZoneOffset.of("+05:00"); ZoneOffset zoneOffset2 = ZoneOffset.of("Z"); // Same as ZoneOffset.UTC System.out.println(zoneOffset1); System.out.println(zoneOffset2); } } 上面的代码生成以下结果。 例3 以下代码从 ZoneOffset 输出常量值。 import java.time.ZoneOffset; public class Main { public static void main(String[] args) { System.out.println("ZoneOffset.UTC: " + ZoneOffset.UTC); System.out.println("ZoneOffset.MIN: " + ZoneOffset.MIN); System.out.println("ZoneOffset.MAX: " + ZoneOffset.MAX); } } 上面的代码生成以下结果。 注意 Java Date-Time API支持以小时,分钟和秒为单位的区域偏移量。 来自ZoneOffset的compareTo()允许我们比较两个区域偏移。 +1:30的区域偏移在+1:00的区域偏移之前。 Java Date-Time API支持-18:00到+18:00之间的区域偏移。 ZoneId ZoneId...

Java 实例/持续时间-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

Java 实例/持续时间

Java日期时间 – Java实例/持续时间 实例和持续时间允许我们记录时间戳和已用时间。 我们可以从瞬间添加和减去持续时间,以获得另一个瞬间。 通过添加两个持续时间,我们可以获得另一个持续时间。 即时和持续时间类别分别存储秒和纳秒。 即时和持续时间更常使用机器级时间。 实例 瞬间表示独特的时刻。 一个时代是用作测量其他时刻的起源的瞬间。 时代是在1970-01-01T00:00:00Z。 两个连续时刻之间的时间是1纳秒。 时代之后的时刻具有正值,而时代之前的时刻具有负值。 在时期的瞬间被分配零值。 我们可以使用Instant.now()来获取使用系统默认时钟的当前时刻。 import java.time.Instant; public class Main { public static void main(String[] args) { Instant instantNow = Instant.now(); System.out.println(instantNow); } } 上面的代码生成以下结果。 例2 您可以从历元偏移创建即时。 以下代码创建一个Instant对象以表示从时代开始的9秒。 import java.time.Instant; public class Main { public static void main(String[] args) { Instant instance9 = Instant.ofEpochSecond(9); System.out.println(instance9); instance9 = Instant.ofEpochSecond(-9); System.out.println(instance9); } } 上面的代码生成以下结果。 注意 两个时刻可以比较知道是否发生在其他之前或之后。 实例和持续时间用于记录两个事件之间的时间戳和经过时间。 持续时间 Duration 对象表示两个时刻之间的时间跨度。 Duration类可以具有正值和负值。 我们可以使用它的一个XXXX()静态工厂方法创建Duration类。 import java.time.Duration; public class Main { public static void main(String[] args) { Duration d1 = Duration.ofDays(2); System.out.println(d1); Duration d2 = Duration.ofMinutes(2); System.out.println(d2); } } 上面的代码生成以下结果。 例3 乘法,除法和否定适用于Duration对象。 import java.time.Duration; public class Main { public static void main(String[] args) { Duration d = Duration.ofSeconds(200); // 3 minutes and 20 seconds...

JavaFX 滚动条-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 滚动条

JavaFX教程 – JavaFX 滚动条 ScrollBar类经常带有一个可滚动的窗格。 import javafx.application.Application; import javafx.geometry.Orientation; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ScrollBar; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 500, 200); stage.setScene(scene); ScrollBar s1 = new ScrollBar(); root.getChildren().add(s1); stage.show(); } public static void main(String[] args) { launch(args); } } 滚动条有四个区域: thumb 右按钮或向下按钮 左按钮或向上按钮 track 上面的代码生成以下结果。 创建滚动条 以下代码使用其默认构造函数创建滚动条。 ScrollBar sc = new ScrollBar(); setMin和setMax方法定义滚动条表示的最小值和最大值。 setValue方法设置滚动的当前值,也设置拇指的位置。 sc.setMin(0); sc.setMax(100); sc.setValue(50); 当用户移动缩略图时,滚动条的值会更改。 默认情况下,滚动条水平定向。我们可以使用 setOrientation 方法设置垂直方向。 我们可以单击左右按钮的水平滚动条或向上和向下按钮垂直滚动条滚动一个单位增量。UNIT_INCREMENT属性设置此值。 单击轨道可使滚动条移动块增量。BLOCK_INCREMENT属性定义此值。 import javafx.application.Application; import javafx.geometry.Orientation; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ScrollBar; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 500, 200); stage.setScene(scene);...

JavaFX 进度显示器-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 进度显示器

JavaFX教程 – JavaFX 进度显示器 进度指示器以动态更改饼图的形式显示JavaFX中的操作进度。 以下代码显示如何使用不确定值创建ProgressIndicator。 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ProgressIndicator; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 260, 80); stage.setScene(scene); Group g = new Group(); ProgressIndicator p1 = new ProgressIndicator(); g.getChildren().add(p1); scene.setRoot(g); stage.show(); } public static void main(String[] args) { launch(args); } } 上面的代码生成以下结果。 创建进度条显示器 以下代码通过传递progress值来创建ProgressIndicator。 ProgressIndicator pi = new ProgressIndicator(0.6); 我们可以使用空构造函数创建没有参数的进度指示器。然后我们可以使用setProgress方法分配值。 如果无法确定进度,我们可以在不确定模式下设置进度控制,直到确定任务的长度。 以下代码显示了如何创建一个ProgressIndicator,完成25%。 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ProgressIndicator; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 260, 80); stage.setScene(scene); Group g = new Group(); ProgressIndicator p1 = new ProgressIndicator();...

JavaFX 进度条-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 进度条

JavaFX教程 – JavaFX进度条 进度条可视化JavaFX应用程序中的操作进度。 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ProgressBar; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 260, 80); stage.setScene(scene); Group g = new Group(); ProgressBar p2 = new ProgressBar(); g.getChildren().add(p2); scene.setRoot(g); stage.show(); } public static void main(String[] args) { launch(args); } } 上面的代码生成以下结果。 创建ProgressBar 以下代码显示如何通过传递progress值来创建ProgressBar。 ProgressBar pb = new ProgressBar(0.6); 您还可以使用空构造函数创建没有参数的进度条。然后使用setProgress方法分配值。 如果我们不能确定任务的完全完成时间,我们可以设置进度条在不确定模式,直到确定任务的长度。 以下代码显示如何创建一个25%完成的ProgressBar。 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.ProgressBar; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 260, 80); stage.setScene(scene); Group g = new Group(); ProgressBar p2 = new ProgressBar(); p2.setProgress(0.25F); g.getChildren().add(p2);...

JavaFX 复选框-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 复选框

JavaFX教程 – JavaFX复选框 复选框允许用户进行多项选择。 例如,当订购比萨饼时我们可以添加多个配料。 单选按钮或切换按钮用于单选或没有选择。 创建复选框 我们可以使用CheckBox中的构造函数来创建CheckBox的对象。 创建不带标题的复选框 CheckBox checkBox = new CheckBox(); 要创建带有字符串标题的复选框 CheckBox checkBox = new CheckBox("Second"); 创建复选框后,我们可以更改其文本并将其选中。 checkBox.setText("First"); checkBox.setSelected(true); 复选框状态 我们可以使用CheckBox来表示三个状态: Yes No Not Applicable “不适用”状态是调用不确定。如果复选框不在不确定中,可以选择或不选择。选择表示是,未选择表示否。 我们可以选择通过设置支持不确定CheckBox对象的allowIndeterminate属性。 如果设置为true,则复选框应该循环选择所有三个状态:选中,取消选择和未定义。 如果设置为false,复选框将循环选择和取消选择的状态。 例子 以下代码显示了如何向CheckBox添加工具提示。 import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.Tooltip; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { Scene scene = new Scene(new Group()); stage.setTitle("Tooltip Sample"); stage.setWidth(300); stage.setHeight(150); final CheckBox cb = new CheckBox("checkBox"); final Tooltip tooltip = new Tooltip("$ tooltip"); tooltip.setFont(new Font("Arial", 16)); cb.setTooltip(tooltip); cb.selectedProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean...

JavaFX 渐变颜色-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 渐变颜色

JavaFX教程 – JavaFX渐变颜色 我们可以使用径向渐变使形状看起来三维。 梯度绘制可以在两种或更多种颜色之间内插,这给出形状的深度。 JavaFX提供两种类型的渐变:径向渐变( RadialGradient )和线性渐变( LinearGradient )。 要在JavaFX中创建渐变颜色,我们需要设置五个属性。 设置开始第一个停止颜色的起点。 将终点设置为终止停止颜色。 设置proportional属性以指定是使用标准屏幕坐标还是单位平方坐标。 将循环方法设置为使用三个枚举:NO_CYCLE,REFLECT或REPEAT。 设置Stop颜色数组。 通过将proportional属性设置为false,我们可以基于标准屏幕(x,y)坐标将渐变轴设置为具有起点和终点。 通过将proportional属性设置为true,梯度轴线开始点和结束点将被表示为单位平方坐标。起点和终点的x,y坐标必须在0.0和1.0之间(double)。 线性梯度 要创建线性渐变绘制,我们为开始点和结束点指定startX,startY,endX和endY。起点和终点坐标指定渐变图案开始和停止的位置。 下表列出了LinearGradient属性 属性 数据类型 / 说明 startX Double设置梯度轴起点的X坐标。 startY Double设置梯度轴起点的Y坐标。 endX Double设置梯度轴终点的X坐标。 endY Double设置梯度轴终点的Y坐标。 proportional Boolean设置坐标是否与形状成比例。 true将使用单位正方形坐标,否则使用屏幕坐标系。 cycleMethod CycleMethod设置应用于渐变的循环方法。 stops List<Stop>置梯度颜色规范的停止列表。 以下代码显示了如何使用线性渐变绘制矩形。 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.paint.CycleMethod; import javafx.scene.paint.LinearGradient; import javafx.scene.paint.Stop; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { VBox box = new VBox(); final Scene scene = new Scene(box,300, 250); scene.setFill(null); Stop[] stops = new Stop[] { new Stop(0, Color.BLACK), new Stop(1, Color.RED)}; LinearGradient lg1 = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops); Rectangle r1 = new Rectangle(0, 0, 100, 100); r1.setFill(lg1); box.getChildren().add(r1); stage.setScene(scene); stage.show(); }...

JavaFX 滑块-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

JavaFX 滑块

JavaFX教程 – JavaFX滑块 滑块可以显示和与一系列数值进行交互。 滑块控件有两件事:一个轨道和一个可拖动的拇指。 在轨道上,我们可以选择包括指示范围的数值的刻度线和标签。 以下代码显示了如何创建一个滑块,其范围(或范围)从0到1,而值的默认值为.5 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Slider; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 600, 400); stage.setScene(scene); stage.setTitle("Slider Sample"); Slider slider = new Slider(0, 1, 0.5); root.getChildren().add(slider); stage.show(); } public static void main(String[] args) { launch(args); } } 上面的代码生成以下结果。 创建滑块 以下代码使用默认的空构造函数创建一个Slider,然后设置滑块控件的值。 setMin和setMax分别定义滑块上的最小值和最大值。 setValue方法设置滑块的当前值。并且当前值应该小于最大值和大于最小值。setValue方法在轨道上移动缩略图。 Slider slider = new Slider(); slider.setMin(0); slider.setMax(200); slider.setValue(140); setShowTickMarks和setShowTickLabels定义滑块的视觉外观。并启用标记和标签。 slider.setShowTickLabels(true); slider.setShowTickMarks(true); 主要刻度标记之间的单位距离通过setMajorTickUnit方法设置为50。 通过setMinorTickCount方法将任意两个主刻度之间的次刻度数指定为5。 setSnapToTicks方法保持滑块的值与刻度标记对齐。 setBlockIncrement方法定义当用户点击轨道时拇指移动的距离。 slider.setMajorTickUnit(50); slider.setMinorTickCount(5); slider.setBlockIncrement(10); 具有自定义刻度标记和刻度标记标签的滑块,其也跨度从0到1 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Slider; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { Group root = new Group(); Scene scene = new Scene(root, 600,...