Wiem, że odgrzewam stary temat, ale po jakimś czasie powróciłem do próby połączenia animacji JavaFX i Swinga i powiem szczerze, że nie wiele znalazłem w Internecie.
Byłbym bardzo wdzięczny gdy ktoś pomógł mi to zrobić.
Chodzi mi o to aby:
-Animację
package transitionpath;
import javafx.animation.PathTransition;
import javafx.animation.PathTransition.OrientationType;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.scene.shape.HLineTo;
import javafx.scene.shape.LineTo;
import javafx.scene.shape.MoveTo;
import javafx.scene.shape.Path;
import javafx.stage.Stage;
import javafx.util.Duration;
public class TransitionPath extends Application {
private PathTransition pathTransition;
private void init(Stage primaryStage) {
Image image = new Image("src/ampera10.png");
ImageView iv1 = new ImageView();
iv1.setImage(image);
Group root = new Group();
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(root, 800,600));
root.getChildren().add(iv1);
Path path = new Path();
path.getElements().add(new MoveTo(0,400));
path.getElements().add(new HLineTo(100));
path.getElements().add(new LineTo(200,350));
path.getElements().add(new HLineTo(300));
path.getElements().add(new LineTo(400,400));
path.getElements().add(new HLineTo(500));
path.getElements().add(new LineTo(550,380));
path.getElements().add(new HLineTo(600));
path.getElements().add(new LineTo(650,400));
path.getElements().add(new HLineTo(780));
path.setStroke(Color.DODGERBLUE);
path.getStrokeDashArray().setAll(2d,2d);
root.getChildren().add(path);
pathTransition = new PathTransition();
pathTransition.setDuration(Duration.seconds(30));
pathTransition.setPath(path);
pathTransition.setNode(iv1);
pathTransition.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
}
public void play() throws InterruptedException {
pathTransition.play();
}
@Override public void start(Stage primaryStage) throws Exception {
init(primaryStage);
primaryStage.show();
play();
}
public static void main(String[] args) { launch(args); }
}
-Menu w Swingu
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package shs_fx1.pkg0;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
/**
*
* @author Marcin Ciesielski
*/
public class SHS_Main extends javax.swing.JFrame {
/**
* Creates new form SHS_Main
*/
Dimension rozSys = Toolkit.getDefaultToolkit().getScreenSize();
int rozSysY = rozSys.height;
int rozSysX = rozSys.width;
String LogSprRozString;
public SHS_Main() throws IOException {
initComponents();
metodaSprRoz();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem6 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenu4 = new javax.swing.JMenu();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jMenuItem5 = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("SHS");
setMinimumSize(new java.awt.Dimension(800, 6));
jMenu1.setText("Symulacja");
jMenuItem6.setText("Start");
jMenu1.add(jMenuItem6);
jMenuBar1.add(jMenu1);
jMenu2.setText("Ustawienia");
jMenu4.setText("Zmiana języka");
jMenuItem3.setText("Polski");
jMenu4.add(jMenuItem3);
jMenuItem4.setText("Angielski");
jMenu4.add(jMenuItem4);
jMenuItem5.setText("Niemiecki");
jMenu4.add(jMenuItem5);
jMenu2.add(jMenu4);
jMenuBar1.add(jMenu2);
jMenu3.setText("Pomoc");
jMenuItem1.setText("Pomoc");
jMenu3.add(jMenuItem1);
jMenuItem2.setText("O programie");
jMenu3.add(jMenuItem2);
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 800, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 579, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/*
* Set the Nimbus look and feel
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/*
* If Nimbus (introduced in Java SE 6) is not available, stay with the
* default look and feel. For details see
* http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Windows".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(SHS_Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(SHS_Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(SHS_Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(SHS_Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/*
* Create and display the form
*/
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new SHS_Main().setVisible(true);
} catch (IOException ex) {
Logger.getLogger(SHS_Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem6;
// End of variables declaration
public void metodaSprRoz(){
FileWriter fw = null;
try {
if(rozSysX == 800 && rozSysY == 600){
//SVGA 800×600 (4:3)
LogSprRozString = "SVGA 800×600 (4:3)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1024 && rozSysY == 768){
//XGA 1024×768 (4:3)
LogSprRozString = "XGA 1024×768 (4:3)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1280 && rozSysY == 720){
//HDTV 720p 1280×720 (16:9)
LogSprRozString = "HDTV 720p 1280×720 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1366 && rozSysY == 768){
//HDTV 1366×768 (16:9)
LogSprRozString = "HDTV 1366×768 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1280 && rozSysY == 800){
//WXGA 1280×800 (16:10)
LogSprRozString = "WXGA 1280×800 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1440 && rozSysY == 900){
//WXGA+ 1440×900 (16:10)
LogSprRozString = "WXGA 1440×900 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1280 && rozSysY == 1024){
//SXGA 1280×1024 (5:4)
LogSprRozString = "SXGA 1280×1024 (5:4)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1600 && rozSysY == 1024){
//WSXGA 1600×1024 (16:10)
LogSprRozString = "WSXGA 1600×1024 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1400 && rozSysY == 1050){
//SXGA+ 1400×1050 (4:3)
LogSprRozString = "SXGA+ 1400×1050 (4:3)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1024 && rozSysY == 600){
//WSVGA 1024×600 (16:9)
LogSprRozString = "WSVGA 1024×600 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1680 && rozSysY == 1050){
//WSXGA+ 1680×1050 (16:10)
LogSprRozString = "WSXGA+ 1680×1050 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1600 && rozSysY == 1200){
//UXGA 1600×1200 (4:3)
LogSprRozString = "UXGA 1600×1200 (4:3)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1600 && rozSysY == 900){
//HD+ 1600×900 (16:9)
LogSprRozString = "HD+ 1600×900 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1920 && rozSysY == 1080){
//HDTV 1080p 1920×1080 (16:9)
LogSprRozString = "HDTV 1080p 1920×1080 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 1920 && rozSysY == 1200){
//WUXGA 1920×1200 (16:10)
LogSprRozString = "WUXGA 1920×1200 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 2048 && rozSysY == 1152){
//QWXGA 2048×1152 (16:9)
LogSprRozString = "QWXGA 2048×1152 (16:9)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 2048 && rozSysY == 1536){
//QXGA 2048×1536 (4:3)
LogSprRozString = "QXGA 2048×1536 (4:3)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 2560 && rozSysY == 1600){
//WQXGA 2560×1600 (16:10)
LogSprRozString = "WQXGA 2560×1600 (16:10)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
if(rozSysX == 2560 && rozSysY == 2048){
//QSXGA 2560×2048 (5:4)
LogSprRozString = "QSXGA 2560×2048 (5:4)";
setExtendedState(JFrame.MAXIMIZED_BOTH);
}
fw = new FileWriter("logs/LogSprRoz.txt");
fw.write("Wykryta rozdzielczość ekranu to: " + LogSprRozString);
} catch (IOException ex) {
Logger.getLogger(SHS_Main.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(SHS_Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
Połączyć w podobny sposób:
- Przechwytywanie.PNG (46 KB) - ściągnięć: 207