Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- //package javafxwithjframes;
- import javafx.application.Application;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.layout.HBox;
- import javafx.stage.Stage;
- import javafx.stage.WindowEvent;
- import javax.swing.JFrame;
- /**
- * When starting, a JavaFX window and 3 Swing JFrame-windows appear.
- * The JavaFX window features 3 buttons that each are supposed to close one of the JFrames.
- * The program, however, freezes after clicking a button. What am I doing wrong?
- * It seems to work on Windows, but crash on OS X 10.10.1, using Java 8u25 (latest release) and Java 8u40 Dec 31 preview-build.
- *
- * @author a desperate developer
- */
- public class JavaFXWithJFrames extends Application {
- JFrame jframe1, jframe2, jframe3;
- @Override
- public void start(Stage primaryStage) {
- // Create 3 JFrames
- jframe1 = new JFrame("JFrame 1");
- jframe1.setBounds(50, 50, 200, 150);
- jframe1.setVisible(true);
- jframe2 = new JFrame("JFrame 2");
- jframe2.setBounds(275, 50, 200, 150);
- jframe2.setVisible(true);
- jframe3 = new JFrame("JFrame 3");
- jframe3.setBounds(500, 50, 200, 150);
- jframe3.setVisible(true);
- // Create 3 buttons that close each one JFrame
- // Button 1
- Button closeButton1 = new Button();
- closeButton1.setText("Close JFrame 1");
- closeButton1.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- jframe1.setVisible(false);
- System.out.print("Closing JFrame 1...");
- jframe1.dispose();
- }
- });
- // Button 2
- Button closeButton2 = new Button();
- closeButton2.setText("Close JFrame 2");
- closeButton2.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- jframe2.setVisible(false);
- System.out.print("Closing JFrame 2...");
- jframe2.dispose();
- }
- });
- // Button 3
- Button closeButton3 = new Button();
- closeButton3.setText("Close JFrame 3");
- closeButton3.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- jframe3.setVisible(false);
- System.out.print("Closing JFrame 3...");
- jframe3.dispose();
- }
- });
- // Setting up main window
- HBox rootBox = new HBox();
- rootBox.getChildren().addAll(closeButton1, closeButton2, closeButton3);
- Scene scene = new Scene(rootBox, 400, 250);
- primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() {
- @Override
- public void handle(WindowEvent event) {
- System.exit(0);
- }
- });
- primaryStage.setTitle("JavaFX with JFrames");
- primaryStage.setScene(scene);
- primaryStage.show();
- }
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement