JavaFX Gridpane mit gleich großen Spalten

Lucaaa

Bekanntes Mitglied
Hallo!
Ich möchte einen Stundenplan machen, und die Wochentage (Mo bis So bzw Fr) sollen die gleiche Breite haben. Jedoch sollen die Spalten breiter werden, wenn sich das fenster vergrößert.
Die spalten dürfen auf keinen fall breiter werden, egal was drin steht.

Erstmal das GridPane:

Java:
package com.ludevstudio.schoolmanager;
import java.util.ResourceBundle;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.TilePane;
import javafx.scene.layout.VBox;
public class Schedule extends GridPane{
 ResourceBundle bundle;
 
 int days;
  int houers;
 
 public Schedule(int houers, boolean weekend) {
  setAlignment(Pos.CENTER);
  setGridLinesVisible(true);
  
  
  bundle = ResourceBundle.getBundle("Bundle");
  
  if(weekend) {
   this.days = 7;
  } else {
   this.days = 5;
  }
  this.houers = houers;
  
  
  createHeader();
  
  
  setLesson(4, 4);
 
  scaleColumnWidth();
 }
 
 
 public void scaleColumnWidth() {
  double width = 0.08;
  ColumnConstraints c1 = new ColumnConstraints();
  c1.setPercentWidth(width);
  ColumnConstraints c2 = new ColumnConstraints();
  c2.setPercentWidth(width);
  ColumnConstraints c3 = new ColumnConstraints();
  c3.setPercentWidth(width);
  ColumnConstraints c4 = new ColumnConstraints();
  c4.setPercentWidth(width);
  ColumnConstraints c5 = new ColumnConstraints();
  c5.setPercentWidth(width);
  ColumnConstraints c6 = new ColumnConstraints();
  c6.setPercentWidth(width);
  ColumnConstraints c7 = new ColumnConstraints();
  c7.setPercentWidth(width);
  ColumnConstraints c8 = new ColumnConstraints();
  c8.setPercentWidth(width);
 
  getColumnConstraints().addAll(c1,c2,c3,c4,c5,c6,c7,c8);
 }
 
 
 
 public Label dayCell(int day) {
  String[] days = new String[] {
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Monday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Tuesday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Wednesday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Thursday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Friday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Saturday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Sunday")
   };
  
  Label cell = new Label(days[day]);
  cell.setStyle("-fx-background-color: #00f; -fx-text-fill: #fff; -fx-font-weight: 700; -fx-padding: 7 15 7 15; -fx-font-size: 2em;");
  GridPane.setHgrow(cell, Priority.ALWAYS);
  
  cell.setMaxWidth(Double.MAX_VALUE);
  return cell;
 }
 
 
 
 public Label houerCell(int houer) {
  Label cell = new Label(houer + ". Stunde");
  cell.setStyle("-fx-background-color: #00f; -fx-text-fill: #fff; -fx-font-weight: 700; -fx-padding: 7 15 7 15; -fx-font-size: 2em;");
  GridPane.setHgrow(cell, Priority.ALWAYS);
  
  cell.setMaxWidth(Double.MAX_VALUE);
  return cell;
 }
 
 
 
 public Label createLesson() {
  Label cell = new Label();
  
  
  return cell;
 }
 
 private void createHeader() {
  for(int i=0; i<days; i++) {
   add(dayCell(i), (i+1), 0);
  }
  for(int i=0; i<houers; i++) {
   add(houerCell(i+1), (0), (i+1));
  }
 }
 
 
 public void setLesson(int day, int houer) {
  BorderPane cell = new BorderPane();
  cell.setStyle("-fx-background-color: red; -fx-padding: 10;");
  
  Label labName = new Label("Naturwissenschaften");
  labName.setStyle("-fx-font-size: 2em;  -fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: red; -fx-max-height: infinity");
  Label labRoom = new Label("315");
  labRoom.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: red;");
  Label labTeacher = new Label("Brade");
  labTeacher.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: red; ");
  cell.setLeft(labName);
  
  VBox cellInfo = new VBox();
  cellInfo.getChildren().add(labTeacher);
  cellInfo.getChildren().add(labRoom);
  
  cell.setRight(cellInfo);
  
  
  GridPane.setHgrow(cell, Priority.ALWAYS);
  add(cell, day+1, houer+1);
 }
 
}

Ich habe das hier
Java:
public void scaleColumnWidth() {
  double width = 0.08;
  ColumnConstraints c1 = new ColumnConstraints();
  c1.setPercentWidth(width);
  ColumnConstraints c2 = new ColumnConstraints();
  c2.setPercentWidth(width);
  ColumnConstraints c3 = new ColumnConstraints();
  c3.setPercentWidth(width);
  ColumnConstraints c4 = new ColumnConstraints();
  c4.setPercentWidth(width);
  ColumnConstraints c5 = new ColumnConstraints();
  c5.setPercentWidth(width);
  ColumnConstraints c6 = new ColumnConstraints();
  c6.setPercentWidth(width);
  ColumnConstraints c7 = new ColumnConstraints();
  c7.setPercentWidth(width);
  ColumnConstraints c8 = new ColumnConstraints();
  c8.setPercentWidth(width);
  getColumnConstraints().addAll(c1,c2,c3,c4,c5,c6,c7,c8);
 }

und das hier:

Java:
public void scaleColumnWidth() {
  for(int i = 0; i<days+1; i++) {
   ColumnConstraints cc = new ColumnConstraints();
   cc.setPercentWidth(1/(days+1));
   getColumnConstraints().add(cc);
  }
 }
versucht.

Beim ersten wird das Gridpane gar nicht angezeigt, und beim zweiten, überragt es den container und die Spaltenbreite wird auch größer, wenn etwas drin ist, das breiter ist als die spalte

Hoffe mir kann wer helfen.
Danke schon mal :)
 

Lucaaa

Bekanntes Mitglied
setPercentWidth(100.0 / (days+1));
Das hab ich schon. es verhindert aber nicht, das sich die spalte verbreitert, wenn etwas darin ist, das breiter ist.
Die spalte muss gleich groß bleiben.
Momentan ist es so, dass wenn ich z.B. ein Label mit einemm sehr langen Text in eine zelle packe alle Spalten größer werden, das Gridpane dann jedoch rechts abgeschnitten ist.
 

mihe7

Top Contributor
Das hab ich schon. es verhindert aber nicht, das sich die spalte verbreitert, wenn etwas darin ist, das breiter ist.

a) das hast Du nicht (zumindest nicht geposted)
b) doch, natürlich

Java:
import java.time.DayOfWeek;
import java.time.format.TextStyle;
import java.util.Locale;

import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.Label;
import javafx.stage.*;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;


public class Test extends Application {
    public static void main(String[] args) {
        launch(args);
    }


    @Override
    public void start(Stage stage) {
        GridPane pane = new GridPane();
        double colWidth = 100.0 / 8.0;

        for (int i = 0; i < 8; i++) {
            ColumnConstraints cc = new ColumnConstraints();
            cc.setPercentWidth(colWidth);
            pane.getColumnConstraints().add(cc);
        }

        for (int i = 1; i < 8; i++) {
            String dow = DayOfWeek.of(i).getDisplayName(TextStyle.FULL, Locale.GERMAN);
            Label hdr = new Label(dow);
            pane.add(hdr, i, 0);
        }

        Scene scene = new Scene(pane, 800, 600);
        stage.setScene(scene);
        stage.show();
    }
}
 

Lucaaa

Bekanntes Mitglied
) das hast Du nicht (zumindest nicht geposted)
b) doch, natürlich

Java:
package com.ludevstudio.schoolmanager;
import java.util.ResourceBundle;
import org.controlsfx.control.GridCell;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.Labeled;
import javafx.scene.control.OverrunStyle;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.TilePane;
import javafx.scene.layout.VBox;
public class Schedule extends GridPane  {
 ResourceBundle bundle;
 
 int days;
  int houers;
 
 public Schedule(int houers, boolean weekend) {
  setAlignment(Pos.CENTER);
  setStyle("-fx-background-color: white;");
  setGridLinesVisible(true);
  
  
  bundle = ResourceBundle.getBundle("Bundle");
  
  if(weekend) {
   this.days = 7;
  } else {
   this.days = 5;
  }
  this.houers = houers;
  
  
  createHeader();
  
  
  for(int i = 1; i<=days; i++) {
  for(int j = 1; j<=houers; j++) {
   setEmpty(i, j);
  } 
  }
 
  
  
  scaleColumnWidth();
  
 }
 
 
 public void scaleColumnWidth() {
  ColumnConstraints c = new ColumnConstraints();
  c.fillWidthProperty().set(true);
  getColumnConstraints().add(c);
  
  for(int i = 0; i<days; i++) {
   ColumnConstraints cc = new ColumnConstraints();
   cc.setHgrow(Priority.NEVER);
   cc.setPercentWidth(92/(days));
   
   getColumnConstraints().add(cc);
  }
 }
 
 
 
 public Label dayCell(int day) {
  String[] days = new String[] {
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Monday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Tuesday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Wednesday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Thursday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Friday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Saturday"),
    bundle.getString("MainWindow.Schedulepage.Schedule.Days.Sunday")
   };
  
  Label cell = new Label(days[day]);
  cell.setAlignment(Pos.CENTER);
  cell.setStyle("-fx-background-color: #00f; -fx-text-fill: #fff; -fx-font-weight: 700; -fx-padding: 7; -fx-font-size: 2em;");
  cell.setTextOverrun(OverrunStyle.CLIP);
  GridPane.setHgrow(cell, Priority.ALWAYS);
  
  cell.setMaxWidth(Double.MAX_VALUE);
  return cell;
 }
 
 
 
 
 
 public HBox houerCell(int houer) {
  HBox cell =new HBox();
  Label labHouer = new Label(houer + "");
  labHouer.setStyle("-fx-text-alignment: left; -fx-background-color: #00f; -fx-text-fill: #fff; -fx-font-weight: 700; -fx-padding: 7 0 7 4; -fx-font-size: 2em; -fx-max-width: infinity; -fx-max-height: infinity");
  labHouer.setAlignment(Pos.BASELINE_LEFT);
  GridPane.setHgrow(labHouer, Priority.ALWAYS);
  
  VBox timeBox = new VBox();
  timeBox.maxHeight(Double.MAX_VALUE);
  timeBox.maxWidth(Double.MAX_VALUE);
  timeBox.setAlignment(Pos.CENTER_RIGHT);
  timeBox.setStyle("-fx-margin: 0 5 0 0;");
  Label labBegin = new Label("12:30");
  labBegin.setStyle("-fx-text-fill: white; -fx-background-color: blue;");
  
  Label labEnd = new Label("13:45");
  labEnd.setStyle("-fx-text-fill: white; -fx-background-color: blue;");
  timeBox.getChildren().addAll(labBegin, labEnd);
  
  
  cell.getChildren().add(labHouer);
  cell.getChildren().add(timeBox);
  cell.setMaxWidth(Double.MAX_VALUE);
  
  cell.setStyle("-fx-background-color: blue; -fx-margin: 0 20 0 20; ");
  cell.setAlignment(Pos.CENTER_LEFT);
  return cell;
 }
 
 
 
 
 private void createHeader() {
  for(int i=0; i<days; i++) {
   add(dayCell(i), (i+1), 0);
  }
  for(int i=0; i<houers; i++) {
   add(houerCell(i+1), (0), (i+1));
  }
 }
 
 
 public void setLesson(int day, int houer, String subject, String teacher, String room, String color) {
  AnchorPane cell =new AnchorPane();
  cell.setStyle("-fx-background-color: "+color+"; -fx-padding: 10;");
  
  Label labName = new Label(subject);
  labName.setTextOverrun(OverrunStyle.CLIP);
  labName.setStyle("-fx-font-size: 200%;  -fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; -fx-max-height: infinity");
  
  Label labRoom = new Label(room);
  labRoom.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; ");
  Label labTeacher = new Label(teacher.substring(0, 5));
  labTeacher.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; ");
  cell.setLeftAnchor(labName, 5d);
  
  
  cell.getChildren().add(labName);
  
  cell.setLeftAnchor(labTeacher, 2d);
  cell.setBottomAnchor(labTeacher, 2d);
  cell.getChildren().add(labTeacher);
  
  cell.setRightAnchor(labRoom, 2d);
  cell.setBottomAnchor(labRoom, 2d);
  cell.getChildren().add(labRoom);
  
  
  
  
  add(cell, day, houer);
 }

 public void setEmpty(int day, int houer) { 
  Label cell = new Label("");
  cell.setMaxHeight(Double.MAX_VALUE);
  cell.setMaxWidth(Double.MAX_VALUE);
  
  cell.setOnMouseClicked((MouseEvent t) -> {
        setLesson(GridPane.getColumnIndex(cell), GridPane.getRowIndex(cell), "abcdefghijklmnopqrstuvwxyz", "Meier", "PHY-1", "#0f0");
     });
  
  add(cell, day, houer);
  
 }
 
 
}
 

Anhänge

  • so darf es nicht sein.png
    so darf es nicht sein.png
    110,4 KB · Aufrufe: 56
  • so soll es bleiben.png
    so soll es bleiben.png
    116,4 KB · Aufrufe: 65

Lucaaa

Bekanntes Mitglied
Java:
crollPane scroll = new ScrollPane();
 scroll.setContent((new Schedule(16, false)));
 scroll.setStyle("-fx-background-color: white;");
 scroll.setHbarPolicy(ScrollBarPolicy.NEVER);
 scroll.setVbarPolicy(ScrollBarPolicy.NEVER);
 scroll.setFitToHeight(true);
 scroll.setFitToWidth(true);
 scroll.setPadding(new Insets(0, 0, 20, 0));
 setCenter(scroll);
 

Robat

Top Contributor
kann ich denn in einer GridView Nodes anzeigen? (Also so das es so aussieht wie jetzt? ich möchte die Zelen während der Laufzeit bearbeiten können!
Ja und ja.. sollte beides möglich sein. Hab es mal fix versucht sporadisch nachzubauen (vom Tabellendesign her).. das sollte eigentlich in die richtige Richtung gehen.
Java:
public class App extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("view.fxml"));

        Scene scene = new Scene(root, 1200,800);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Java:
public class ViewController implements Initializable {

    @FXML
    private TableColumn<String, String> timeColumn;
    ...

    @FXML
    private TableView<String> table;

    @Override
    public void initialize(URL location, ResourceBundle resources) { .. }
}
HTML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>


<AnchorPane prefHeight="800.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="timetable.ViewController">
   <children>
      <TableView fx:id="table" editable="true" layoutX="39.0" layoutY="41.0" prefHeight="714.0" prefWidth="1135.0" stylesheets="@view.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
        <columns>
          <TableColumn id="firstColumn" fx:id="timeColumn" maxWidth="100.0" minWidth="100.0" prefWidth="100.0" />
          <TableColumn fx:id="mondayColumn" prefWidth="327.0" text="Montag" />
            <TableColumn fx:id="tuesdayColumn" prefWidth="75.0" text="Dienstag" />
            <TableColumn fx:id="wednesdayColumn" prefWidth="75.0" text="Mittwoch" />
            <TableColumn fx:id="thursdayColumn" prefWidth="75.0" text="Donnerstag" />
            <TableColumn fx:id="fridayColumn" prefWidth="75.0" text="Freitag" />
        </columns>
         <columnResizePolicy>
            <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
         </columnResizePolicy>
      </TableView>
   </children>
</AnchorPane>

CSS:
.table-view .column-header {
    -fx-background-color: blue;
}

.table-view .column-header .label {
    -fx-text-fill: white;
    -fx-font-weight: bold;
}

.table-view .table-cell #firstColumn {
    -fx-background-color: blue;
}
 

Lucaaa

Bekanntes Mitglied
Ja und ja.. sollte beides möglich sein. Hab es mal fix versucht sporadisch nachzubauen (vom Tabellendesign her).. das sollte eigentlich in die richtige Richtung gehen.
Danke aber das Ding macht mir Probleme.
Ich kann als Tabelleninhalt nur eine Liste aus Nodes setzen, und dann die Eigenschaften in jeder spalte anzeigen.
ich möchte aber pro Zelle ein Node anzeigen und nicht mit irgendwelchen CellFactories oder so.
Mit dem GridPane konnte ich per Klick die einzelnen Zellen austauschen, da sie aus Nodes bestanden. Ich kann mir noch nicht vorstellen, wie ich das mit der Tableview umsetzen kann.
 

mihe7

Top Contributor
Sorry, ich kann das Problem nicht nachvollziehen:

Java:
public class Gridpane extends Application {
  
    @Override
    public void start(Stage primaryStage) {
        GridPane pane = new GridPane();
        double w = 100.0 / 8.0;
        for (int i = 1; i <= 7; i++) {
            ColumnConstraints cc = new ColumnConstraints();
            cc.setPercentWidth(w);
            pane.getColumnConstraints().add(cc);
            String dow = DayOfWeek.of(i).getDisplayName(TextStyle.FULL, Locale.GERMAN);
            pane.add(new Label(dow), i, 0);
        }
      
        pane.add(new Label("Ein langer, langer Text, der in keine Spalte passt"), 2, 1);
      
        ScrollPane scroll = new ScrollPane(pane);
        scroll.setFitToWidth(true);
      
        Scene scene = new Scene(scroll, 600, 400);
      
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
  
}
 

Lucaaa

Bekanntes Mitglied
Sorry, ich kann das Problem nicht nachvollziehen:
Wenn ich das Label so hinzufüge wie du, also vor dem Anzeigen, funktioniert alles. Das Problem ist, das ich das Label (Oder cell) vom Benutzer hinzufügen lassen möchte. D.h. nach dem anzeigen der Stage. Wenn ich das mache, passiert das, was auf den Bildern (paar posts vorher) zusehen ist.
 

mihe7

Top Contributor
Java:
public class Gridpane extends Application {

    @Override
    public void start(Stage primaryStage) {
        final GridPane pane = new GridPane();
        Button b = new Button("Add");
        b.setOnAction(e -> {
            pane.add(new Label("Langes, langes, langes Label"), 1, 2);
        });
        pane.add(b, 0, 0);

        double w = 100.0 / 8.0;
        for (int i = 1; i <= 7; i++) {
            ColumnConstraints cc = new ColumnConstraints();
            cc.setPercentWidth(w);
            pane.getColumnConstraints().add(cc);
            String dow = DayOfWeek.of(i).getDisplayName(TextStyle.FULL, Locale.GERMAN);
            pane.add(new Label(dow), i, 1);
        }

        pane.add(new Label("Ein langer, langer Text, der in keine Spalte passt"), 2, 2);

        ScrollPane scroll = new ScrollPane(pane);
        scroll.setFitToWidth(true);

        Scene scene = new Scene(scroll, 600, 400);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
 

Lucaaa

Bekanntes Mitglied
Also wenn ich das label hinzufüge
Java:
cell.setOnMouseClicked((MouseEvent t) -> {
       // setLesson(GridPane.getColumnIndex(cell), GridPane.getRowIndex(cell), "abcdefghijklmnopqrstuvwxyz", "Meier", "PHY-1", "#0f0");
   add(new Label("Ein sehr sehr langer Text, der in keine Spalte passt!"),GridPane.getColumnIndex(cell), GridPane.getRowIndex(cell));
 
 
  });
Ist alles ok.
Aber wenn ich das hier hinzufüge
Java:
public void setLesson(int day, int houer, String subject, String teacher, String room, String color) {
  AnchorPane cell =new AnchorPane();
  cell.setStyle("-fx-background-color: "+color+"; -fx-padding: 10;");
 
  Label labName = new Label(subject);
  labName.setTextOverrun(OverrunStyle.CLIP);
  labName.setStyle("-fx-font-size: 200%;  -fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; -fx-max-height: infinity");
 
  Label labRoom = new Label(room);
  labRoom.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; ");
  Label labTeacher = new Label(teacher.substring(0, 5));
  labTeacher.setStyle("-fx-font-weight: 700; -fx-text-fill: white; -fx-background-color: "+color+"; ");
  cell.setLeftAnchor(labName, 5d);
 
 
  cell.getChildren().add(labName);
 
  cell.setLeftAnchor(labTeacher, 2d);
  cell.setBottomAnchor(labTeacher, 2d);
  cell.getChildren().add(labTeacher);
 
  cell.setRightAnchor(labRoom, 2d);
  cell.setBottomAnchor(labRoom, 2d);
  cell.getChildren().add(labRoom);
 
 
 
 
  add(cell, day, houer);
 
 }

verbreitert es die Tabelle (Wiedermal die Bilder)
 

mihe7

Top Contributor
Ja, das ist so auch dokumentiert: "If a child is anchored on opposite sides (and is resizable), the anchor pane will resize it to maintain both offsets, otherwise the anchor pane will resize it to its preferred size."

Lösung: beide (EDIT: links/rechts) Anker setzen.
 

mihe7

Top Contributor
Nimm bitte nicht nur die Lösung, sondern in erster Linie den Weg dorthin mit:

Du hattest das GridPane als Ursache des Übels vermutet. Darauf hin habe ich ein minimales Beispiel implementiert -> funktioniert. Dann hast Du die ScrollPane ins Spiel gebracht. Beispiel um ScrollPane erweitert -> funktioniert. Dann kamst Du mit der AnchorPane um die Ecke. Beispiel um AnchorPane erweitert -> funktioniert nicht mehr -> Problem liegt also bei der AnchorPane -> Doku konsultieren -> alles klar.

Was wir hier gemacht haben, ist eine minimale Implementierung, die gerade so viel enthält, dass der Fehler auftaucht. Das kannst Du künftig prima selbst machen, dann kommst Du in der Regel binnen weniger Minuten auf eine Lösung. Und wenn nicht, hast Du für das Forum eine solide Grundlage in Form eines minimalen Beispiels.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
H JavaFX GridPane getBoundsInParent() AWT, Swing, JavaFX & SWT 0
B Überlappung im GridPane AWT, Swing, JavaFX & SWT 2
S ImageView wird dem Gridpane nicht zugefügt AWT, Swing, JavaFX & SWT 1
S Skallierung von Gridpane Inhalten AWT, Swing, JavaFX & SWT 1
S SceneBuilder gridpane erweitern AWT, Swing, JavaFX & SWT 0
K 2048 Umsetzung mit Gridpane / Stackpane und / Rectangle AWT, Swing, JavaFX & SWT 0
B GridPane erweitern AWT, Swing, JavaFX & SWT 0
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
J Aus welchen Grund wird der Button nicht angezeigt im GridPane? AWT, Swing, JavaFX & SWT 1
I ImageView in GridPane: Bildgröße AWT, Swing, JavaFX & SWT 1
S JavaFX GridPane Zellen Seitenverhätnis passend ändern mit der Stage AWT, Swing, JavaFX & SWT 0
N JavaFX GridPane Halignment funktioniert nicht AWT, Swing, JavaFX & SWT 1
Joker4632 JavaFX GridPane richtig implementieren AWT, Swing, JavaFX & SWT 7
U JavaFX GridPane - Circle auf Rectangle versetzten AWT, Swing, JavaFX & SWT 1
H Button in GridPane wird nicht angenommen AWT, Swing, JavaFX & SWT 3
H JavaFX GridPane: Zellenfarbe setzen AWT, Swing, JavaFX & SWT 9
G JavaFX CSS: Label in GridPane rechts ausrichten AWT, Swing, JavaFX & SWT 9
L TextArea Zeichenabstand gleich machen AWT, Swing, JavaFX & SWT 8
AmsananKING Textfelder sind gleich null AWT, Swing, JavaFX & SWT 2
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
P Fenstergröße ändern, Panel soll gleich bleiben AWT, Swing, JavaFX & SWT 2
Mr.Byte JavaFX Gleich mit JavaFX anfangen? AWT, Swing, JavaFX & SWT 5
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
C JTable Datensätze bleiben immer gleich AWT, Swing, JavaFX & SWT 14
H Fenstergröße bei Mac und Windows gleich einstellen? AWT, Swing, JavaFX & SWT 3
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
Helgon Zwei jTables gleich Breit AWT, Swing, JavaFX & SWT 4
T BBCodes gleich anzeigen AWT, Swing, JavaFX & SWT 3
Daniel_L JTable - Links-rechts-Klick ist gleich Doppelklick? AWT, Swing, JavaFX & SWT 2
C Fenster gleich bewegen funktioniert nicht ganz! AWT, Swing, JavaFX & SWT 11
E windowClosing() - JFrame nicht durch X knopf gleich beenden? AWT, Swing, JavaFX & SWT 9
G JToolbar gleich als eigenes Fenster öffnen AWT, Swing, JavaFX & SWT 2
O Buttons gleich groß + gleicher Abstand AWT, Swing, JavaFX & SWT 3
I Popup-Trigger-Maustaste gleich beim Programmstart ermitteln? AWT, Swing, JavaFX & SWT 7
B 2 fenster gleich verschieben AWT, Swing, JavaFX & SWT 3
I Button in JToolbar gleich groß AWT, Swing, JavaFX & SWT 2
T Programm gleich wie Windows Media Player in den Task geben AWT, Swing, JavaFX & SWT 10
T JSplitPane immer gleich groß machen AWT, Swing, JavaFX & SWT 3
N LookAndFeel - Nicht gleich alles überschreiben AWT, Swing, JavaFX & SWT 8
G JTextField, gleich reinschreiben AWT, Swing, JavaFX & SWT 6
E JavaFX Sehr viel und unterschiedlich Großen Inhalt auf einer "Fläche" ... Umsetzbar ? AWT, Swing, JavaFX & SWT 3
S Bilddatei kopieren, aber ohne verluste und ohne zu großen Speicherverbrauch AWT, Swing, JavaFX & SWT 17
G JList mit einer großen Anzahl an Einträgen AWT, Swing, JavaFX & SWT 15
S Buttons mit großen Icon AWT, Swing, JavaFX & SWT 7
R Kleine Panels auf einem großen Panel frei platzieren AWT, Swing, JavaFX & SWT 11
A Probelme mit großen BufferedImage in paintComponent AWT, Swing, JavaFX & SWT 7
H MouseMotionListener#mouseDragged() in großen Abständen AWT, Swing, JavaFX & SWT 7
S GridLayout mit sehr großen Abständen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben