Resize løpende mengde ord til perfekt bundet vedlagte tekst er når skriftstørrelsen endres

stemmer
0

Jeg har en løpende mengde ord element over en StackPane og det er befolket med 8 linjer med tekst, 80 tegn lang. Jeg prøver å legge til muligheten til å endre skriftstørrelser og har løpende mengde ord vokse eller krympe å korrespondere med endringen i skriftstørrelse. Hvis jeg redusere skriftstørrelsen, de løpende mengde ord oppfører seg som forventet. Hvis jeg øke skriftstørrelsen, tekst start innpakning og størrelsen er alle vridd.

    public List<Text> lines = new ArrayList<>();

    public void testTerminal()
    {

        for (int x = 0; x < 8; x++)
        {
            Text t = new Text(123567890123456789012345678901234567890123567890123456789012345678901234567890\n);
            t.setFont(Font.font(Monospaced, 14));
            t.setFill(Color.WHITE);
            t.setWrappingWidth(Double.MAX_VALUE);
            lines.add(t);
        }

        this.terminal.getChildren().addAll(lines);

        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth());
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth());
    }

    public void changeFontSize(int size)
    {


        // grow the TextFlow much larger than it should need to be
        // for the new font size.
        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*16.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*16.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth()*10);
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth()*10);


        for (Text t: lines)
        {
            t.setFont(Font.font(Monospaced, size));
        }

        terminal.setMinHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);
        terminal.setMaxHeight(lines.get(0).getBoundsInLocal().getHeight()*8.0);

        terminal.setMinWidth(lines.get(0).getBoundsInLocal().getWidth());
        terminal.setMaxWidth(lines.get(0).getBoundsInLocal().getWidth());

    }

Siden problemet skjer bare på å øke skriftstørrelsen, antok jeg at jeg måtte gjøre løpende mengde ord større før resizing de vedlagte tekstene. Dette har ikke fungert. Jeg har også prøvd å gjøre en dummy tekst på den nye størrelse og bruke disse dimensjonene. Kan ikke synes å få det til å fungere. Noen råd?

Bilder: initial

Initial

Initial

Publisert på 19/03/2020 klokken 22:01
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more