Добавление пользовательского компонента в построитель графического интерфейса NetBeans!(WorldWind) - PullRequest
4 голосов
/ 26 июня 2011

Хорошо, я пытаюсь добавить глобус World Wind из NASA в окно графического интерфейса, созданное конструктором графического интерфейса NetBeans.Мой пример кода создает свое собственное окно, и сборщик графического интерфейса хотел бы, чтобы я не редактировал области, необходимые для этого :) Я бы написал свою собственную, но это часть приложения платформы NetBeans и содержит код и аннотации. Я не готовобрабатывать еще.Я не уверен, как это сделать.Вот пример кода, который я хотел бы в окне:

public class WorldWindTest {

public static void main(String[] args) {

    //create a WorldWind main object
    WorldWindowGLCanvas worldWindCanvas = new WorldWindowGLCanvas();
    worldWindCanvas.setModel(new BasicModel());
            Position myPoint = Position.fromDegrees(31.12, -88.64, 35000);


    //build Java swing interface
    JFrame frame = new JFrame("World Wind");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(worldWindCanvas);
    frame.setSize(800,600);
    frame.setVisible(true);

    //create some "Position" to build a polyline
    LinkedList<Position> list = new LinkedList<Position>();

//          list.add(Position.fromDegrees(i,0.0,i*20000));
    }

            list.add(Position.fromDegrees(30.12, -85.64, 35000));
            list.add(Position.fromDegrees(31.12, -88.64, 35000));


    //create "Polyline" with list of "Position" and set color / thickness
    Polyline polyline = new Polyline(list);
    polyline.setColor(Color.RED);
    polyline.setLineWidth(3.0);

    //create a layer and add Polyline
    RenderableLayer layer = new RenderableLayer();
    layer.addRenderable(polyline);
    //add layer to WorldWind
    worldWindCanvas.getModel().getLayers().add(layer);
}
}   

Ответы [ 2 ]

4 голосов
/ 26 июня 2011

Для усиления моего комментария я подумал, что вы можете создать класс, скажем, SetUpWorldWindowGLCanvas, и в нем инициализировать и настроить свой объект WorldWindowGLCanvas, а затем предоставить ему публичный метод получения, который позволит вам получитьнастроить объект WorldWindowGLCanvas.то есть,

public class SetUpWorldWindowGLCanvas {

    WorldWindowGLCanvas worldWindCanvas = new WorldWindowGLCanvas();

    public SetUpWorldWindowGLCanvas() {
        worldWindCanvas.setModel(new BasicModel());
        Position myPoint = Position.fromDegrees(31.12, -88.64, 35000);

        // ... etc
    }

    public WorldWindowGLCanvas getWwGlCanvas() {
        return worldWindCanvas;
    }
}

И затем поместите этот BorderLayout.CENTER в JPanel, который был создан в вашем построителе GUI и который использует BorderLayout в качестве менеджера компоновки.

3 голосов
/ 26 июня 2011

Вместо того, чтобы использовать редактор GUI для всего вашего приложения, ограничьте его использование только несколькими контейнерами, которые больше всего выиграют от него, например, сложными макетами.Затем ваш WorldWindowGLCanvas может быть нормально добавлен в ваш контейнер верхнего уровня .В этом примере , WorldWindowGLCanvas появится рядом с NewJPanel:

JFrame f = new JFrame();
f.setLayout)new GridLayout(1, 0);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(worldWindCanvas);
f.add(new NewJPanel());
f.pack();
f.setVisible(true);
...