|
Dialogfenster mit einem Canvas-Element |
UIBspCanvas01.java
UIBspCanvas01.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
int MAX=700; Canvas canvas = new Canvas(MAX, MAX); root.setTop( canvas );
GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath();
gc.setLineWidth(2); gc.setStroke(Color.RED); // Linienfarbe gc.strokeLine(0,0, MAX, MAX); |
Dialogfenster mit einem Canvas-Element Barcode Muster |
UIBspCanvas02.java
UIBspCanvas02.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
int MAX=700; Canvas canvas = new Canvas(MAX, MAX); root.setTop( canvas );
GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath(); int x = 80; for (int i=0; i<60; i++) { gc.strokeLine(x,40,x,100); x += 1+ 10*Math.random(); } gc.stroke(); |
Dialogfenster mit einem Canvas-Element Zeichen des "Haus des Nikolaus" |
UIBspCanvas03.java
UIBspCanvas03.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
private void draw1() { GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath(); gc.clearRect(0,0, MAX, MAX); gc.setFill(Color.RED); gc.setLineWidth(2); gc.setStroke(Color.GREEN); // Linienfarbe
gc.strokeLine(100,100, 600,100); // waagerecht oben gc.strokeLine(600,100, 600,400); // senkrecht rechts gc.strokeLine(100,400, 600,400); // waagerecht unten gc.strokeLine(100,100, 100,400); // senkrecht links
gc.strokeLine(100,100, 600,400); // links oben nach rechts unten gc.strokeLine(100,400, 600,100); // links unten nach rechts oben
gc.strokeLine(100,100, 350, 50); // links oben nach rechts unten gc.strokeLine(350, 50, 600,100); // links unten nach rechts oben gc.stroke(); }// draw1 |
Dialogfenster mit einem Canvas-Element Random Rechtecke |
UIBspCanvas04.java
UIBspCanvas04.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
Canvas canvas = new Canvas(MAX, MAX); root.setTop( canvas );
GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath(); gc.setLineWidth(2); gc.setStroke(Color.RED); // Linienfarbe int x, y; // Mittelpunkt int w, h; // Breite Höhe
for (int i=0; i<10; i++) { gc.setLineDashes(2+40*Math.random(), 2+10*Math.random()); //gc.setLineDashOffset(2+400*Math.random());
x = (int) ( 400*Math.random() ); // Links Oben y = (int) ( 200*Math.random() ); // Links Oben w = (int) ( 400*Math.random() ); // Width h = (int) ( 200*Math.random() ); // Height gc.strokeRect(x,y,w,h); } gc.stroke(); |
Dialogfenster mit einem Canvas-Element Random Ellipsen |
UIBspCanvas05.java
UIBspCanvas05.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
Canvas canvas = new Canvas(MAX, MAX); root.setTop( canvas );
GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath(); gc.setLineWidth(2); gc.setStroke(Color.RED); // Linienfarbe int x, y; // Mittelpunkt int w, h; // Breite Höhe
for (int i=0; i<10; i++) { gc.setLineDashes(2+40*Math.random(), 2+10*Math.random()); //gc.setLineDashOffset(2+400*Math.random());
x = (int) ( 400*Math.random() ); // Links Oben y = (int) ( 200*Math.random() ); // Links Oben w = (int) ( 400*Math.random() ); // Width h = (int) ( 200*Math.random() ); // Height gc.strokeOval(x,y,w,h); }
gc.stroke(); |
Dialogfenster mit einem Canvas-Element Random PolyLines |
UIBspCanvas06.java
UIBspCanvas06.png
import javafx.scene.paint.*; import javafx.scene.canvas.*;
Canvas canvas = new Canvas(MAX, MAX); root.setTop( canvas );
GraphicsContext gc = canvas.getGraphicsContext2D(); gc.beginPath(); gc.setLineWidth(2); gc.setStroke(Color.RED);
double[] xPoints=new double[10]; double[] yPoints=new double[10];
//void strokePolyline(double[] xPoints, double[] yPoints, int nPoints)
for (int i=0; i<3; i++) { switch (i) { case 0: gc.setStroke(Color.RED); break; case 1: gc.setStroke(Color.GREEN); break; case 2: gc.setStroke(Color.BLUE); break; case 3: gc.setStroke(Color.MAGENTA); break; } gc.setLineDashes(2+40*Math.random(), 2+10*Math.random()); //gc.setLineDashOffset(2+400*Math.random());
for (int j=0; j<6; j++) { xPoints[j] = 2+600*Math.random(); yPoints[j] = 5+470*Math.random(); }
gc.strokePolyline(xPoints,yPoints,4); }
gc.stroke(); |
Dialogfenster mit einem Canvas-Element Verschiedene Beispiele |
UIBspCanvas07.java
UIBspCanvas07.png
UIBspCanvas07b.png
UIBspCanvas07c.png
UIBspCanvas07d.png
UIBspCanvas07e.png
UIBspCanvas07f.png |
Dialogfenster mit einem Canvas-Element XY-Grafik (ohne Kurven) |
UIBspCanvas08.java
UIBspCanvas08.png
Das Haupelement ist ein Stackpanel. Damit kann man dem Canvas die aktuelle Fenster "verpassen":
private Canvas canvas = null; private Button bn = new Button("1"); private boolean start=true;
private Label editorstatus= new Label("-");
@Override public void start(Stage stage) { this.stage = stage; StackPane root = new StackPane(); bn.setMaxWidth(Double.POSITIVE_INFINITY); bn.setMaxHeight(Double.POSITIVE_INFINITY); bn.setVisible(false);
root.getChildren().add( bn ); root.getChildren().add( setCenterElements() );
Scene scene= new Scene(root, 900, 900); stage.setTitle("UICanvas08"); stage.widthProperty().addListener((obs, oldVal, newVal) -> { resizeCanvas(); });
stage.heightProperty().addListener((obs, oldVal, newVal) -> { resizeCanvas(); }); stage.setScene(scene); stage.show(); start=false; resizeCanvas(); }
private void resizeCanvas() { if (!start) { System.out.println("H: "+bn.getHeight()+" W: "+bn.getWidth()); canvas.setHeight(bn.getHeight()); canvas.setWidth(bn.getWidth()); draw(); } } |
|
|