Im JavaFX -Szenenbauer kann ich einen Wert für die minimale, maximale und bevorzugte Breite und Höhe eines Steuerung oder Container auswählen. Es gibt vordefinierte Werte wie Use_Computed_size < /code>. Jetzt frage ich mich, wie ich diese Werte festlegen kann, wenn ich FXML nicht verwendete. < /p>
Wie mache ich das? Ich habe den folgenden Code ausprobiert: < /p>
initializeControls();
addControls();
setMinHeight(Control.USE_COMPUTED_SIZE);
setMinWidth(Control.USE_COMPUTED_SIZE);
addActionListeners();
addFocusChangeListeners();
< /code>
Dies führt jedoch zu einer Ausnahme, wenn Sie versuchen, die Stufe zu erstellen: < /p>
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: The width and height must be >= 0. Got: width=-1; height=-1
at com.sun.glass.ui.Window.setMinimumSize(Window.java:984)
at com.sun.javafx.tk.quantum.WindowStage.setMinimumSize(WindowStage.java:291)
at javafx.stage.Stage.impl_visibleChanging(Stage.java:1154)
at javafx.stage.Window$9.invalidated(Window.java:743)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.stage.Window.setShowing(Window.java:841)
at javafx.stage.Window.show(Window.java:856)
at javafx.stage.Stage.show(Stage.java:255)
at dictionary.MainApp.trainVocablesButtonActionPerformed(MainApp.java:281)
at dictionary.MainApp.lambda$addActionListeners$2(MainApp.java:240)
at dictionary.MainApp$$Lambda$281/81350454.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8216)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3724)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3452)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1728)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2461)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:348)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:273)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:382)
at com.sun.glass.ui.View.handleMouseEvent(View.java:553)
at com.sun.glass.ui.View.notifyMouse(View.java:925)
at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
at com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126)
at com.sun.glass.ui.gtk.GtkApplication$$Lambda$42/379110473.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
< /code>
Ich denke, ich habe den Wert von Use_Computed_Size < /code> aus der falschen Klasse oder so übernommen, aber woher bekomme ich den richtigen Wert? Oder ist dieser ganze Ansatz irgendwie falsch? Mehr. < /p>
Bearbeiten#1:
Korrektur: Es sollte so viel Platz wie erforderlich wie eine minimale < /em> Breite und Höhe benötigen, also also Dass das Fenster immer noch setzbar ist, aber nicht so klein gemacht werden kann, dass Steuerelemente nicht mehr angezeigt werden. Breite + Höhe auf einem kleineren Beispiel App:
Code: < /p>
package javafxapplication3;
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Control;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.paint.RadialGradientBuilder;
import javafx.scene.paint.Stop;
import javafx.stage.Stage;
public class GridPaneExample extends Application {
private final Paint background = RadialGradientBuilder.create()
.stops(new Stop(0d, Color.TURQUOISE), new Stop(1, Color.web("3A5998")))
.centerX(0.5d).centerY(0.5d).build();
@Override
public void start(Stage primaryStage) {
GridPane root = new GridPane();
root.setPadding(new Insets(5));
root.setHgap(2);
root.setVgap(2);
root.setAlignment(Pos.CENTER);
final TextField tex = new TextField();
tex.setPrefWidth(250);
tex.setPrefHeight(50);
tex.setPromptText("Press the buttons to Display text here");
tex.setFocusTraversable(false);
GridPane.setColumnSpan(tex, 7);
GridPane.setRowSpan(tex, 2);
root.add(tex, 0, 0);
GridPane.setHalignment(tex, HPos.CENTER);
final Button[][] btn = new Button[5][5];
char ch = 'A';
for ( int i = 0; i < btn.length; i++) {
for ( int j = 0; j < btn.length; j++) {
btn[i][j] = new Button("" + ch);
btn[i][j].setPrefSize(50, 50);
root.add(btn[i][j], j, i+2);
ch++;
btn[i][j].setOnMouseClicked((mouseEvent) -> {
Button b = (Button) mouseEvent.getSource();
tex.appendText(b.getText());
});
}
}
Scene scene = new Scene(root,background);
primaryStage.setTitle("Grid Pane Example");
primaryStage.setScene(scene);
primaryStage.setWidth(Control.USE_COMPUTED_SIZE);
primaryStage.setHeight(Control.USE_COMPUTED_SIZE);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Im JavaFX -Szenenbauer kann ich einen Wert für die minimale, maximale und bevorzugte Breite und Höhe eines Steuerung oder Container auswählen. Es gibt vordefinierte Werte wie Use_Computed_size < /code>. Jetzt frage ich mich, wie ich diese Werte festlegen kann, wenn ich FXML nicht verwendete. < /p>
Wie mache ich das? Ich habe den folgenden Code ausprobiert: < /p>
Dies führt jedoch zu einer Ausnahme, wenn Sie versuchen, die Stufe zu erstellen: < /p>
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: The width and height must be >= 0. Got: width=-1; height=-1 at com.sun.glass.ui.Window.setMinimumSize(Window.java:984) at com.sun.javafx.tk.quantum.WindowStage.setMinimumSize(WindowStage.java:291) at javafx.stage.Stage.impl_visibleChanging(Stage.java:1154) at javafx.stage.Window$9.invalidated(Window.java:743) at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143) at javafx.stage.Window.setShowing(Window.java:841) at javafx.stage.Window.show(Window.java:856) at javafx.stage.Stage.show(Stage.java:255) at dictionary.MainApp.trainVocablesButtonActionPerformed(MainApp.java:281) at dictionary.MainApp.lambda$addActionListeners$2(MainApp.java:240) at dictionary.MainApp$$Lambda$281/81350454.handle(Unknown Source) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8216) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3724) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3452) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1728) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2461) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:348) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:273) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:382) at com.sun.glass.ui.View.handleMouseEvent(View.java:553) at com.sun.glass.ui.View.notifyMouse(View.java:925) at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at com.sun.glass.ui.gtk.GtkApplication.lambda$null$45(GtkApplication.java:126) at com.sun.glass.ui.gtk.GtkApplication$$Lambda$42/379110473.run(Unknown Source) at java.lang.Thread.run(Thread.java:745) < /code>
Ich denke, ich habe den Wert von Use_Computed_Size < /code> aus der falschen Klasse oder so übernommen, aber woher bekomme ich den richtigen Wert? Oder ist dieser ganze Ansatz irgendwie falsch? Mehr. < /p>
Bearbeiten#1: Korrektur: Es sollte so viel Platz wie erforderlich wie eine minimale < /em> Breite und Höhe benötigen, also also Dass das Fenster immer noch setzbar ist, aber nicht so klein gemacht werden kann, dass Steuerelemente nicht mehr angezeigt werden. Breite + Höhe auf einem kleineren Beispiel App:
public class GridPaneExample extends Application { private final Paint background = RadialGradientBuilder.create() .stops(new Stop(0d, Color.TURQUOISE), new Stop(1, Color.web("3A5998"))) .centerX(0.5d).centerY(0.5d).build(); @Override public void start(Stage primaryStage) { GridPane root = new GridPane(); root.setPadding(new Insets(5)); root.setHgap(2); root.setVgap(2); root.setAlignment(Pos.CENTER); final TextField tex = new TextField(); tex.setPrefWidth(250); tex.setPrefHeight(50); tex.setPromptText("Press the buttons to Display text here"); tex.setFocusTraversable(false); GridPane.setColumnSpan(tex, 7); GridPane.setRowSpan(tex, 2); root.add(tex, 0, 0); GridPane.setHalignment(tex, HPos.CENTER); final Button[][] btn = new Button[5][5]; char ch = 'A'; for ( int i = 0; i < btn.length; i++) { for ( int j = 0; j < btn.length; j++) {
Ich bin auf meiner Website auf ein Problem gestoßen, bei dem Safari (18.2) und Chrome (132.0.6834.84) völlig unterschiedliche Ergebnisse für ein absolut positioniertes Element liefern.
Auf Chrome...
Ich verwende ein Testskript, das in Beispielen für Browser-Nutzung angegeben ist, aber derzeit erhalte ich den folgenden Fehler vom Browser-Use-Agenten: ' Der Zugriff wird verweigert '. Mein Code...
Ich erstelle eine einfache Anwendung mit JavaFX + Afterburner.fx.
Beim Ausführen von mvn clean javafx:run erhalte ich diese Fehlermeldung:
File: recipelistpresenter.fxml not found, attempting with...
Ich erstelle ein Programm, das Patienteninformationen wie Name, Adresse, Termine, Bilder und Diagnose enthält. auf einer separaten FXML -Seite angezeigt werden, die gedruckt werden soll. Der Benutzer...