import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.VBox;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.shape.Line;
import java.io.*;
import javax.imageio.ImageIO;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Node;
public class Show extends Application{
BorderPane pane=new BorderPane();
public void start(Stage primaryStage){
menu();
Scene scene=new Scene(pane,1200,700);
primaryStage.setTitle("简易电路图绘制软件");
primaryStage.setScene(scene);
primaryStage.show();
}
public void menu(){
VBox h=new VBox(20);
ImageView A=new ImageView(new Image("image/A.jpg"));
ImageView D=new ImageView(new Image("image/D.jpg"));
ImageView K=new ImageView(new Image("image/K.jpg"));
ImageView V=new ImageView(new Image("image/V.jpg"));
ImageView Y=new ImageView(new Image("image/Y.jpg"));
ImageView Z=new ImageView(new Image("image/Z.jpg"));
ImageView hb = new ImageView(new Image("image/hb.png"));
Button b = new Button("直线");
Button bc = new Button("保存");
h.getChildren().addAll(A,D,K,V,Y,Z,b,bc);
pane.setLeft(h);
pane.setCenter(hb);
bc.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
snapshot(pane);
}
});
b.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked7();
}
});
A.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked1();
}
});
D.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked2();
}
});
K.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked3();
}
});
V.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked4();
}
});
Y.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked5();
}
});
Z.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
mouseClicked6();
}
});
b.setOnAction((e->{mouseClicked7();}));
}
public void mouseClicked1(){
pane.setOnMouseClicked(e->{
ImageView A=new ImageView(new Image("image/A.jpg"));
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(A);
A.setX(e.getX());
A.setY(e.getY());
}
});
}
public void mouseClicked2(){
ImageView D=new ImageView(new Image("image/D.jpg"));
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(D);
D.setX(e.getX());
D.setY(e.getY());
}
});
}
public void mouseClicked3(){
ImageView K=new ImageView(new Image("image/K.jpg"));
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(K);
K.setX(e.getX());
K.setY(e.getY());
}
});
}
public void mouseClicked4(){
ImageView V=new ImageView(new Image("image/V.jpg"));
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(V);
V.setX(e.getX());
V.setY(e.getY());
}
});
}
public void mouseClicked5(){
ImageView Y=new ImageView(new Image("image/Y.jpg"));
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(Y);
Y.setX(e.getX());
Y.setY(e.getY());
}
});
}
public void mouseClicked6(){
ImageView Z=new ImageView(new Image("image/Z.jpg"));
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.SECONDARY){
pane.getChildren().addAll(Z);
Z.setX(e.getX());
Z.setY(e.getY());
}
});
}
public void mouseClicked7(){
pane.setOnMouseClicked(e->{
if(e.getButton()==MouseButton.PRIMARY){
double x1=e.getX();
double y1=e.getY();
pane.setOnMouseClicked(e2->{
if(e2.getButton()==MouseButton.SECONDARY){
double x2=e2.getX();
double y2=e2.getY();
Line line=new Line(x1,y1,x2,y2);
pane.getChildren().add(line);
}
});
}
});
}
public void snapshot(Node view) {
Image image = view.snapshot(null,null);
try(FileOutputStream file=new FileOutputStream("图画.png")){
ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png",file);
} catch (IOException e) {
e.printStackTrace();
}
}
//将节点获取为JavaFX中的Image,然后通过SwingFXUtils将JavaFX中的Image的像素读取并输出为Java中的Image,然后通过ImageIO导出。
public static void main(String[] args){
Application.launch(args);
}
}
评论0