Как позиционировать узел через группу JavaFX

Я попытался использовать http://ipinfo.io , и этот JSON API работает отлично. Во-первых, вам нужно добавить следующие пространства имен:

using System.Linq;
using System.Web; 
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Xml;
using System.Collections.Specialized;

Для localhost это даст фиктивные данные как AU. Вы можете попробовать жестко кодировать свой IP-адрес и получить результаты:

namespace WebApplication4
{
    public partial class WebForm1 : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
         {

          string VisitorsIPAddr = string.Empty;
          //Users IP Address.                
          if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
          {
              //To get the IP address of the machine and not the proxy
              VisitorsIPAddr =   HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
          }
          else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
          {
              VisitorsIPAddr = HttpContext.Current.Request.UserHostAddress;`enter code here`
          }

          string res = "http://ipinfo.io/" + VisitorsIPAddr + "/city";
          string ipResponse = IPRequestHelper(res);

        }

        public string IPRequestHelper(string url)
        {

            string checkURL = url;
            HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
            StreamReader responseStream = new StreamReader(objResponse.GetResponseStream());
            string responseRead = responseStream.ReadToEnd();
            responseRead = responseRead.Replace("\n", String.Empty);
            responseStream.Close();
            responseStream.Dispose();
            return responseRead;
        }


    }
}

-1
задан Compiler v2 17 March 2019 в 21:14
поделиться

2 ответа

Похоже, вы используете не тот контейнер (группу) для того, что вы хотите достичь.

Как должны выглядеть четыре узла Canvas относительно кнопки «Пуск»? Вы можете использовать AnchorPane или VBox. Все зависит от того, как должен выглядеть общий макет.

Возможно, вы захотите создать основной макет с помощью SceneBuilder: https://gluonhq.com/products/scene-builder/

Также рассмотрите, что Group делает для макета. (не очень): https://github.com/javafxports/openjdk-jfx/blob/develop/modules/javafx.graphics/src/main/java/javafx/scene/Group.java [115 ]

Обычно вы не вызываете setLayoutX / Y, если вы не реализует layoutChildren в новом подклассе Parent.

Редактировать: чтобы сложить узлы Canvas, вы можете поместить их в StackPane, но я думаю, что я бы использовал AnchorPane, так как вы можете легко закрепить кнопку, которая будет смещена от нижнего края AnchorPane.

0
ответ дан swpalmer 17 March 2019 в 21:14
поделиться

не использует setLayout, он используется менеджерами компоновки, которые перемещают дочерние элементы (например, StackPane). Группа не одна. Вместо этого используйте setTranslateX.

0
ответ дан Sergey Grinev 17 March 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: