似乎不可能修复Graphics2D缺少的代码,我必须设置动画的修复大小,否则一些开始外面的矩形490 x 490冻结或在屏幕上摇晃
我的SSCCE
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Random;
import java.util.Vector;
import java.util.regex.Pattern;
import javax.swing.*;
import javax.swing.table.*;
public class OneTwoThree implements Runnable {
private String testS;
private JFrame frame = new JFrame("frameTitle");
private JScrollPane tblS = new JScrollPane();
private JTable tbl;
private Vector<String> rOrH;
private long t1 = 0L;
private long t2 = 0L;
private AlphaChars aChars = new AlphaChars();
private GradientViewPortOriginal tableViewPort;
private JViewport viewport = new JViewport();
private Random random …Run Code Online (Sandbox Code Playgroud) 在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) 我在 HTML5 演示中使用 Javafx 实现相同的效果,但使用 Javafx 的帧速率非常低
我如何优化它,我是否写错了或者是否有其他更好的方法来实现它。
这是原始的 html5 演示项目:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>snows</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<style>
html,
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.container {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="jsi-snow-container" class="container"></div>
<script>
var RENDERER = {
SNOW_COUNT: { INIT: 100, DELTA: 1 },
BACKGROUND_COLOR: 'hsl(%h, 50%, %l%)',
INIT_HUE: 180,
DELTA_HUE: 0.1,
init: function () {
this.setParameters();
this.reconstructMethod();
this.createSnow(this.SNOW_COUNT.INIT …Run Code Online (Sandbox Code Playgroud) 我仍然在JavaFX中学习和试验GUI,我似乎无法获得我想要的"外观"..我试图在面板中组合几个标签,然后在另一个面板中添加另一个标签.但我似乎无法弄清楚如何在JavaFX中正确使用"JPanels"?
任何帮助将不胜感激:D谢谢
编辑: 这是我试图通过尝试不同的布局,仍然没有运气实现