8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package hello;
27
28 import com.sun.javafx.css.StyleManager;
29 import javafx.application.Application;
30 import javafx.geometry.Insets;
31 import javafx.scene.Scene;
32 import javafx.scene.control.ToggleButton;
33 import javafx.scene.control.ToggleGroup;
34 import javafx.scene.layout.VBox;
35 import javafx.stage.Stage;
36
37 public class HelloHighContrast extends Application {
38
39 private static final String MODENA_PATH = "com/sun/javafx/scene/control/skin/modena/";
40 private String lastStyleUsed = null;
41
42 public static void main(String[] args) {
43 Application.launch(args);
44 }
45
46 @Override public void start(Stage stage) {
47 final ToggleGroup group = new ToggleGroup();
48 group.selectedToggleProperty().addListener(ov -> {
49 // remove old style
50 if (lastStyleUsed != null) {
51 StyleManager.getInstance().removeUserAgentStylesheet(MODENA_PATH + lastStyleUsed);
52 lastStyleUsed = null;
53 }
54
55 // install new style
56 String userData = (String) (group.getSelectedToggle() != null ? group.getSelectedToggle().getUserData() : null);
57 if (userData != null) {
58 lastStyleUsed = userData;
59 StyleManager.getInstance().addUserAgentStylesheet(MODENA_PATH + userData);
60 }
61 });
62
63 ToggleButton disableHighContrast = new ToggleButton("Disable High Contrast");
64 disableHighContrast.setMaxWidth(Double.MAX_VALUE);
65 disableHighContrast.setUserData(null);
66 disableHighContrast.setToggleGroup(group);
67 disableHighContrast.setSelected(true);
68
69 ToggleButton whiteOnBlackBtn = new ToggleButton("White on black");
70 whiteOnBlackBtn.setMaxWidth(Double.MAX_VALUE);
71 whiteOnBlackBtn.setUserData("whiteOnBlack.css");
72 whiteOnBlackBtn.setToggleGroup(group);
73
74 ToggleButton blackOnWhiteBtn = new ToggleButton("Black on white");
75 blackOnWhiteBtn.setMaxWidth(Double.MAX_VALUE);
76 blackOnWhiteBtn.setUserData("blackOnWhite.css");
77 blackOnWhiteBtn.setToggleGroup(group);
78
79 ToggleButton yellowOnBlackBtn = new ToggleButton("Yellow on black");
80 yellowOnBlackBtn.setMaxWidth(Double.MAX_VALUE);
81 yellowOnBlackBtn.setUserData("yellowOnBlack.css");
82 yellowOnBlackBtn.setToggleGroup(group);
83
84 VBox vbox = new VBox(10, disableHighContrast, whiteOnBlackBtn, blackOnWhiteBtn, yellowOnBlackBtn);
85 vbox.setPadding(new Insets(10));
86
87 Scene scene = new Scene(vbox);
88
89 stage.setScene(scene);
90 stage.setWidth(200);
91 stage.setHeight(200);
92 stage.show();
93 }
94 }
|
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package hello;
27
28 import javafx.application.Application;
29 import javafx.geometry.Insets;
30 import javafx.scene.Scene;
31 import javafx.scene.control.ToggleButton;
32 import javafx.scene.control.ToggleGroup;
33 import javafx.scene.layout.VBox;
34 import javafx.stage.Stage;
35
36 import com.sun.javafx.application.PlatformImpl;
37 import com.sun.javafx.css.StyleManager;
38
39 public class HelloHighContrast extends Application {
40
41 public static void main(String[] args) {
42 Application.launch(args);
43 }
44
45 @Override public void start(Stage stage) {
46 final ToggleGroup group = new ToggleGroup();
47 group.selectedToggleProperty().addListener(ov -> {
48 String userData = (String) (group.getSelectedToggle() != null ? group.getSelectedToggle().getUserData() : null);
49 if (userData != null) {
50 System.setProperty("com.sun.javafx.highContrastTheme", userData);
51 } else {
52 System.clearProperty("com.sun.javafx.highContrastTheme");
53 }
54 PlatformImpl.setAccessibilityTheme(null); // Reads the system property
55 });
56
57 ToggleButton disableHighContrast = new ToggleButton("Disable High Contrast");
58 disableHighContrast.setMaxWidth(Double.MAX_VALUE);
59 disableHighContrast.setUserData(null);
60 disableHighContrast.setToggleGroup(group);
61 disableHighContrast.setSelected(true);
62
63 ToggleButton whiteOnBlackBtn = new ToggleButton("White on black");
64 whiteOnBlackBtn.setMaxWidth(Double.MAX_VALUE);
65 whiteOnBlackBtn.setUserData("WHITEONBLACK");
66 whiteOnBlackBtn.setToggleGroup(group);
67
68 ToggleButton blackOnWhiteBtn = new ToggleButton("Black on white");
69 blackOnWhiteBtn.setMaxWidth(Double.MAX_VALUE);
70 blackOnWhiteBtn.setUserData("BLACKONWHITE");
71 blackOnWhiteBtn.setToggleGroup(group);
72
73 ToggleButton yellowOnBlackBtn = new ToggleButton("Yellow on black");
74 yellowOnBlackBtn.setMaxWidth(Double.MAX_VALUE);
75 yellowOnBlackBtn.setUserData("YELLOWONBLACK");
76 yellowOnBlackBtn.setToggleGroup(group);
77
78 VBox vbox = new VBox(10, disableHighContrast, whiteOnBlackBtn, blackOnWhiteBtn, yellowOnBlackBtn);
79 vbox.setPadding(new Insets(10));
80
81 Scene scene = new Scene(vbox);
82
83 stage.setScene(scene);
84 stage.setWidth(200);
85 stage.setHeight(200);
86 stage.show();
87 }
88 }
|