小编Hin*_*ara的帖子

如何在javaFX中制作canvas Resizable?

在javaFX中调整画布大小没有这样的方法,唯一的解决方案是从Canvas扩展.

class ResizableCanvas extends Canvas {

    public ResizableCanvas() {
        // Redraw canvas when size changes.
        widthProperty().addListener(evt -> draw());
        heightProperty().addListener(evt -> draw());
    }

    private void draw() {
        double width = getWidth();
        double height = getHeight();

        GraphicsContext gc = getGraphicsContext2D();
        gc.clearRect(0, 0, width, height);

    }

    @Override
    public boolean isResizable() {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

从Canvas扩展是唯一使画布Resizable的解决方案?因为这个解决方案只有在我们不想使用FXML时才有效,如果我们在fxml中声明一个画布,我们怎样才能使它可以调整大小?

这是我的代码:

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class Main extends Application {

    Controller controller;

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

javafx canvas javafx-2 fxml javafx-8

11
推荐指数
3
解决办法
1万
查看次数

算法使一个简单的图形平面

我想知道有一些算法可以将图形转换成平面图吗?我在谷歌搜索过我找不到可以帮助我的东西 在此输入图像描述

java algorithm graph planar-graph

5
推荐指数
1
解决办法
2396
查看次数

在javaFX中运行swing应用程序

我有一个在Swing上完美运行的代码,但我想将它集成到javaFX上.我知道我必须使用SwingNode,但代码在javaFX中不起作用.这是我用的librarie的.jar:http://forge.scilab.org/index.php/p/jlatexmath/downloads/694/

这是摆动的结果: 在此输入图像描述

这是Swing中的代码:

 import org.scilab.forge.jlatexmath.TeXConstants;
import org.scilab.forge.jlatexmath.TeXFormula;
import org.scilab.forge.jlatexmath.TeXIcon;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

public class LatexExample extends JFrame implements ActionListener {

    private JTextArea latexSource;
    private JButton btnRender;
    private JPanel drawingArea;

    public LatexExample() {
        this.setTitle("JLatexMath Example");
        this.setSize(500, 500);
        Container content = this.getContentPane();
        content.setLayout(new GridLayout(2, 1));
        this.latexSource = new JTextArea();

        JPanel editorArea = new JPanel();
        editorArea.setLayout(new BorderLayout());
        editorArea.add(new JScrollPane(this.latexSource),BorderLayout.CENTER);
        editorArea.add(btnRender = new JButton("Render"),BorderLayout.SOUTH);

        content.add(editorArea);
        content.add(this.drawingArea = new JPanel());
        this.btnRender.addActionListener(this);

        this.latexSource.setText("x=\\frac{-b \\pm \\sqrt {b^2-4ac}}{2a}"); …
Run Code Online (Sandbox Code Playgroud)

java swing javafx-2 javafx-8

3
推荐指数
2
解决办法
3283
查看次数

将多个jar组合成一个(使用maven)

我在javafx中有一个项目,我有3个依赖项我尝试使用maven将它们与我的primaryale jar结合起来:结果我得到了一个罐子(1.82mb)但是当我点击它时他没有启动注意出现.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <dependencies>
        <dependency>
            <groupId>org.scilab.forge</groupId>
            <artifactId>jlatexmath</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.jfree</groupId>
            <artifactId>fxgraphics2d</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.controlsfx</groupId>
            <artifactId>controlsfx</artifactId>
            <version>8.0.6_20</version>
        </dependency>
    </dependencies>
    <groupId>groupId</groupId>
    <artifactId>FXCalc</artifactId>
    <version>1.0-SNAPSHOT</version>
</project>
Run Code Online (Sandbox Code Playgroud)

这是一些截图:

在此输入图像描述 在此输入图像描述

问题:我得到的jar文件不起作用,它不想启动,我尝试使用蚂蚁和gradle但我不知道如何使用它们.

编辑:尝试解决方案后,我得到一个罐子,但它仍然没有启动,我没有错误. 在此输入图像描述 编辑2:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <dependencies>
        <dependency>
            <groupId>org.jfree</groupId>
            <artifactId>fxgraphics2d</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.scilab.forge</groupId>
            <artifactId>jlatexmath</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.controlsfx</groupId>
            <artifactId>controlsfx</artifactId>
            <version>8.0.6</version>
        </dependency>
    </dependencies>
    <build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>sample.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions> …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea maven-3 javafx-2 javafx-8

3
推荐指数
1
解决办法
5446
查看次数

链接两个椭圆形在java中

我正在使用drawline链接到圆圈,但我有一个问题是我的代码:

import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Panneau extends JPanel {

public void paintComponent(Graphics g){
 // declaration 
                String text = "test";
                int x = 250, y = 200;
                int height = 50, width = 50;


                g.setColor(Color.yellow);
                g.fillOval(x-height/2, y-width/2,width, height);
g.fillOval((x-height/2)+100, (y-width/2)+50,width, height);

                FontMetrics fm = g.getFontMetrics();
                double textWidth = fm.getStringBounds(text, g).getWidth();
                g.setColor(Color.black);
                g.drawString(text, (int) (x - textWidth/2),(int) (y + fm.getMaxAscent() / 2));
            g.drawString(text, (int) (x - textWidth/2)+100,(int) (y + fm.getMaxAscent() / 2)+50);
            g.setColor(Color.black);
            g.drawLine(x,y,x+100,y+50);



}
} …
Run Code Online (Sandbox Code Playgroud)

java swing 2d

2
推荐指数
1
解决办法
900
查看次数

在java中移动椭圆

我做了一个迷你代码绘制椭圆并相互链接,现在我尝试移动椭圆(圆圈),但我有一个问题(在编码)

// Panneau.java
public class Panneau extends JPanel {
    private int R = 20;
    private boolean isDrag = false;
    String text = "stack";
    int x = 250, y = 200;
    int height = 50, width = 50;
    Random Rnd = new Random();
    int rand=Rnd.nextInt();
    int r=Math.abs(rand%250);
    int r2=Math.abs(rand%250);
    public Panneau() {
        addMouseListener(new MouseAdapter() {
            @Override
           public void mousePressed(MouseEvent e) {
                if ((x<=e.getX() && x+R>=e.getX()) && ( y<=e.getY() && y+R>=e.getY())) {
                    moveVertex(e.getX(),e.getY());
                    isDrag = true;
                }
            }

            @Override
            public void mouseReleased(MouseEvent …
Run Code Online (Sandbox Code Playgroud)

java swing awt paintcomponent mouselistener

0
推荐指数
1
解决办法
3209
查看次数