2014-11-30 6 views
0

Я хочу создать пользовательскую форму в Java Scene Builder - hexagon. Я попытался использовать опцию «Полигон», но единственное, что я получаю, - это треугольник. Кто-нибудь знает, как я могу это изменить? Я где-то читал, что должен установить форму «resizeable», но опция в Java Scene Builder неактивна ...Как рисовать шестиугольник в Java Scene Builder 2.0?

Я бы очень признателен за любую помощь!

ответ

3

Я понял это:

<Polygon fill="DODGERBLUE" layoutX="108.0" layoutY="121.0" stroke="BLACK" strokeType="INSIDE"> 
<points> 

<Double fx:value="-50.0" /> 
<Double fx:value="30.0" /> 

<Double fx:value="0.0" /> 
<Double fx:value="60.0" /> 

<Double fx:value="50.0" /> 
<Double fx:value="30.0" /> 

<Double fx:value="50.0" /> 
<Double fx:value="-30.0" /> 

<Double fx:value="0.0" /> 
<Double fx:value="-60.0" /> 

<Double fx:value="-50.0" /> 
<Double fx:value="-30.0" /> 



</points> 
</Polygon> 
0

Я не уверен в строителе сцены, поскольку я никогда не использовал его, но если вы не можете получить эту работу, вы можете сделать это вручную. Согласно the documentation on polygon, вы создаете многоугольник с Polygon(double... points). This question имеет возможность получить правильные очки.

0

Я создал этот класс

class Hexagon { 
    double [] points; 
    double center; 
    public Hexagon(double side){ 
     center = getH(side); 
     points = new double[12]; 
     //  X       Y 
     points[0] = 0.0;   points[1] = 0.0; 
     points[2] = side;   points[3] = 0.0; 
     points[4] = side+(side/2); points[5] = center; 
     points[6] = side;   points[7] = center * 2; 
     points[8] = 0.0;   points[9] = center * 2; 
     points[10] = -side/2;  points[11] = center; 

    } 

    private double getH(double side) { 
     return ((sqrt(3)/2)*side); 
    } 
    public double [] getPoints(){ 
     return points; 
    } 
    } 

И вы можете использовать его для создания полигона просто так:

Polygon hexagon = new Polygon(new Hexagon(100d).getPoints()); 
0

Bellow - это действительный файл fxml, который рисует шестиугольник с поворотом на 90 градусов.

<?xml version="1.0" encoding="UTF-8"?> 

<?import java.lang.Double?> 
<?import javafx.scene.layout.AnchorPane?> 
<?import javafx.scene.shape.Polygon?> 

<AnchorPane xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mypackage.MainController"> 
    <children> 

      <Polygon fill="DODGERBLUE" rotate="90.0" AnchorPane.bottomAnchor="50.0" AnchorPane.leftAnchor="100.0" AnchorPane.rightAnchor="100.0" AnchorPane.topAnchor="50.0"> 
      <points> 

        <Double fx:value="-150.0" /> 
       <Double fx:value="90.0" /> 

        <Double fx:value="0.0" /> 
       <Double fx:value="180.0" /> 

        <Double fx:value="150.0" /> 
       <Double fx:value="90.0" /> 

        <Double fx:value="150.0" /> 
       <Double fx:value="-90.0" /> 

        <Double fx:value="0.0" /> 
       <Double fx:value="-180.0" /> 

        <Double fx:value="-150.0" /> 
       <Double fx:value="-90.0" /> 
      </points> 
     </Polygon> 
    </children> 
</AnchorPane> 

The hexagon