JavaFX: Progress-Bar CSS Styling

Posted: Mai 29th, 2014 | Filed under: Java | Tags: , , , , , , | 3 Comments »

In my opinion the JavaFX CSS Reference Guide is not well elaborated. With the help of screenshots and concrete examples it would be much easier to understand the explanations. Therefore I started https://github.com/frankred/JavaFX-Tutorials to give you some examples for specific components.

In the following post the progress-bar component is introduced.

Progress-Bar Tutorial

.progress-bar {
    -fx-background-color: yellow;
    -fx-background-radius: 10, 10, 10, 10;

}

.progress-bar .track{
    -fx-background-color: green;
    -fx-background-insets: 20;
    -fx-background-radius: 6, 6, 6, 6;
}

.progress-bar .bar { 
    -fx-background-color: grey;
    -fx-background-insets: 30, 30, 30, 30; 
    -fx-background-radius: 4, 4, 4, 4;
}

Feel free to copy and paste everything!


Gastbeitrag: Swing Komponenten in JavaFX 8 verwenden

Posted: Mai 16th, 2014 | Filed under: Java, Programmieren, Tutorials | Tags: , , , , | No Comments »

Seit der aktuellen Version von JavaFX 8 ist es möglich Swing Komponenten in JavaFX Anwendungen einzubinden. Umgekehrt war es schon seit JavaFX 2.0 möglich JavaFX UI-Elemente in eine Swing Anwendung einzubinden. In diesem Beitrag möchte ich anhand einem Beispiel zeigen, wie man einen JButton in den JavaFX Scene Graph einbindet und wie man mit Hilfe des entsprechenden Events, welche vom Button ausgelöst werden, Zugriff die JavaFX Umgebung erhält.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.SwingUtilities;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.embed.swing.SwingNode;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class SwingInJavaFX extends Application {

  // JavaFX Komponenten
  private StackPane stackPane = new StackPane();
  private final SwingNode swingNode = new SwingNode();
  
  @Override
  public void start(Stage stagethrows Exception {
    // Swing Code muss im AWT event dispatching thread ausgeführt werden. Dafür
    // wird die Methode SwingUtilities.invokeLater(Runnable) verwendet.
    SwingUtilities.invokeLater(new Runnable() {
  
      @Override
      public void run() {
        // Ab hier läuft der Code im AWT event dispatching thread.
        // => Zugriff auf die Swing Elemente möglich!
        JButton swingButton = new JButton("Toggle Color");
        swingButton.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
  
            // Um auf die JavaFX Elemente zugreifen zu können, muss man
            // die Methode Platform.runLater(Runnable) nutzen, damit der 
            // Code wieder im JavaFX application thread ausgeführt  wird.
            Platform.runLater(new Runnable() {
              @Override
              public void run() {
                // Ab hier läuft der Code im JavaFX application thread
                // => Zugriff auf die JavaFX Elemente möglich!
                stackPane.getChildren().add(new SwingNode());
                SwingInJavaFX.this.stackPane.setStyle("-fx-background-color: #ffff00;");
              }
            });
          }
        });
        // Füge den Swing Button zum JavaFX Swing Node hinzu
        swingNode.setContent(swingButton);
      }
    });
    // Füge dem StackPane den Swing Node hinzu.
    stackPane.getChildren().add(swingNode);
  
    // Richte die Stage ein.
    stage.setTitle("Swing Komponenten in JavaFX 8 verwenden");
    stage.setScene(new Scene(stackPane, 200200));
    stage.show();
  }
  
    public static void main(String[] args) {
       // JavaFX Anwendung starten
        launch(args);
    }
}

Markus Mangei


Linux CPU Temperatur auslesen

Posted: Mai 13th, 2014 | Filed under: Betriebsysteme, Linux, Tutorials | Tags: , , , , , , , , , | 1 Comment »

Das Tool welches euch das Auslesen der CPU-Temperatur ermöglicht heißt: sensors. Installieren könnt ihr es unter Ubuntu (oder anderen Debian-basierten Systemen wie folgt).

Installation

Debian / Ubuntu

sudo apt-get install lm-sensors

RedHat / Fedora

Unter RedHat oder Fedora unterscheidet sich der Installationname der Applikation ein wenig:

yum install lm_sensors

CPU Temperatur auslesen

Starten könnt ihr das Tool mit folgendem Befehl:

sensors

Sensors Screenshot