Java 在JPanel中放置JFrame的预执行代码

Java 在JPanel中放置JFrame的预执行代码,java,swing,netbeans,jframe,jpanel,Java,Swing,Netbeans,Jframe,Jpanel,我有JUNG library的Java代码, 但是我想添加自定义代码来创建用户界面。 我已经使用Netbeans IDE上的设计选项卡创建了用户界面。但是当我添加自定义代码时, 摇摆元素似乎不能按iv'e设计的顺序排列。 我想我的问题在于设置正确的布局 这是用Netbeans设计的布局iv'e 我想要的是将以下代码添加到JPanel 问题是这段代码将JFrame作为参数,但在我的例子中,我需要将它放在JPanel 以下是我已有的现有代码,以及它在下图中的作用: 公共类编辑器鼠标{ 公共静态v

我有JUNG library的Java代码, 但是我想添加自定义代码来创建用户界面。 我已经使用Netbeans IDE上的设计选项卡创建了用户界面。但是当我添加自定义代码时, 摇摆元素似乎不能按iv'e设计的顺序排列。 我想我的问题在于设置正确的
布局

这是用Netbeans设计的布局iv'e

我想要的是将以下代码添加到
JPanel
问题是这段代码将
JFrame
作为参数,但在我的例子中,我需要将它放在
JPanel

以下是我已有的现有代码,以及它在下图中的作用:

公共类编辑器鼠标{
公共静态void main(字符串[]args){
JFrame=新JFrame(“接口”);
frame.setLayout(新的FlowLayout());
稀疏乘法器
=新的SparseMultraph();
//布局,可视化查看器
//Map vertexLocations=新建HashMap();
布局=新的静态布局(g);
//布局。设置尺寸(新尺寸(400350));
可视化查看器
=新的VisualizationViewer(布局);
vv.getRenderContext().setVertexLabelTransformer(新ToStringLabeler());
vv.getRenderContext().setEdgeLabelTransformer(新的ToStringLabeller());
//创建图形鼠标并将其添加到可视化查看器
EditingModalGraphMouse gm=新建EditingModalGraphMouse(vv.getRenderContext(),
GraphElements.MyVertexFactory.getInstance(),
GraphElements.MyEdgeFactory.getInstance());
//为边设置一些默认值。。。
GraphElements.MyEdgeFactory.setDefaultCapacity(10.0);
GraphElements.MyEdgeFactory.setDefaultWeight(10.0);
//正在尝试我们的新弹出菜单鼠标插件。。。
PopupVertexgeMenuMousePlugin myPlugin=新的PopupVertexgeMenuMousePlugin();
//为我们的鼠标插件添加一些边和顶点的弹出菜单。
jpopumenu edgeMenu=新的MyMouseMenus.edgeMenu(框架);
jpopumenu vertexMenu=新建MyMouseMenus.vertexMenu();
myPlugin.setEdgePopup(edgeMenu);
myPlugin.setVertexPopup(vertexMenu);
gm.remove(gm.getPopupEditingPlugin());//删除现有的弹出式编辑插件
gm.add(myPlugin);//将我们的新插件添加到鼠标中
vv.setGraphMouse(gm);
frame.getContentPane().add(vv);
gm.setMode(ModalGraphMouse.Mode.EDITING);//在编辑模式下启动
frame.pack();
frame.setVisible(true);
}

由于VisualizationViewer扩展了JPanel,我将把初始化它的代码移到它自己的类中,如下所示:

public class MyVisualizationViewer extends VisualizationViewer<GraphElements.MyVertex, GraphElements.MyEdge> {
    public MyVisualizationViewer() {
        super(new StaticLayout(new SparseMultigraph<GraphElements.MyVertex, GraphElements.MyEdge>()));
        this.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
        this.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());
        // Create a graph mouse and add it to the visualization viewer
        EditingModalGraphMouse gm = new EditingModalGraphMouse(this.getRenderContext(),
                GraphElements.MyVertexFactory.getInstance(),
                GraphElements.MyEdgeFactory.getInstance());
        // Set some defaults for the Edges...
        GraphElements.MyEdgeFactory.setDefaultCapacity(10.0);
        GraphElements.MyEdgeFactory.setDefaultWeight(10.0);
//        // Trying out our new popup menu mouse plugin...
        PopupVertexEdgeMenuMousePlugin myPlugin = new PopupVertexEdgeMenuMousePlugin();
//        // Add some popup menus for the edges and vertices to our mouse plugin.
        JPopupMenu edgeMenu = new MyMouseMenus.EdgeMenu(frame);
        JPopupMenu vertexMenu = new MyMouseMenus.VertexMenu();
        myPlugin.setEdgePopup(edgeMenu);
        myPlugin.setVertexPopup(vertexMenu);
        gm.remove(gm.getPopupEditingPlugin());  // Removes the existing popup editing plugin
        gm.add(myPlugin);   // Add our new plugin to the mouse
        this.setGraphMouse(gm);
    }
}
公共类MyVisualizationViewer扩展了VisualizationViewer{
公共MyVisualizationViewer(){
super(新的StaticLayout(新的sparsemultraph());
this.getRenderContext().setVertexLabelTransformer(新ToStringLabeller());
this.getRenderContext().setEdgeLabelTransformer(新的ToStringLabeller());
//创建图形鼠标并将其添加到可视化查看器
EditingModalGraphMouse gm=新建EditingModalGraphMouse(this.getRenderContext(),
GraphElements.MyVertexFactory.getInstance(),
GraphElements.MyEdgeFactory.getInstance());
//为边设置一些默认值。。。
GraphElements.MyEdgeFactory.setDefaultCapacity(10.0);
GraphElements.MyEdgeFactory.setDefaultWeight(10.0);
////正在试用新的弹出式菜单鼠标插件。。。
PopupVertexgeMenuMousePlugin myPlugin=新的PopupVertexgeMenuMousePlugin();
////为鼠标插件添加一些边和顶点的弹出菜单。
jpopumenu edgeMenu=新的MyMouseMenus.edgeMenu(框架);
jpopumenu vertexMenu=新建MyMouseMenus.vertexMenu();
myPlugin.setEdgePopup(edgeMenu);
myPlugin.setVertexPopup(vertexMenu);
gm.remove(gm.getPopupEditingPlugin());//删除现有的弹出式编辑插件
gm.add(myPlugin);//将我们的新插件添加到鼠标中
这是赛特格拉夫大厦(gm);
}
}

编译完这个类后,您可以将它从“项目”窗口拖到JPanel的Netbeans设计上。

由于VisualizationViewer扩展了JPanel,我将把初始化它的代码移到它自己的类中,如下所示:

public class MyVisualizationViewer extends VisualizationViewer<GraphElements.MyVertex, GraphElements.MyEdge> {
    public MyVisualizationViewer() {
        super(new StaticLayout(new SparseMultigraph<GraphElements.MyVertex, GraphElements.MyEdge>()));
        this.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
        this.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());
        // Create a graph mouse and add it to the visualization viewer
        EditingModalGraphMouse gm = new EditingModalGraphMouse(this.getRenderContext(),
                GraphElements.MyVertexFactory.getInstance(),
                GraphElements.MyEdgeFactory.getInstance());
        // Set some defaults for the Edges...
        GraphElements.MyEdgeFactory.setDefaultCapacity(10.0);
        GraphElements.MyEdgeFactory.setDefaultWeight(10.0);
//        // Trying out our new popup menu mouse plugin...
        PopupVertexEdgeMenuMousePlugin myPlugin = new PopupVertexEdgeMenuMousePlugin();
//        // Add some popup menus for the edges and vertices to our mouse plugin.
        JPopupMenu edgeMenu = new MyMouseMenus.EdgeMenu(frame);
        JPopupMenu vertexMenu = new MyMouseMenus.VertexMenu();
        myPlugin.setEdgePopup(edgeMenu);
        myPlugin.setVertexPopup(vertexMenu);
        gm.remove(gm.getPopupEditingPlugin());  // Removes the existing popup editing plugin
        gm.add(myPlugin);   // Add our new plugin to the mouse
        this.setGraphMouse(gm);
    }
}
公共类MyVisualizationViewer扩展了VisualizationViewer{
公共MyVisualizationViewer(){
super(新的StaticLayout(新的sparsemultraph());
this.getRenderContext().setVertexLabelTransformer(新ToStringLabeller());
this.getRenderContext().setEdgeLabelTransformer(新的ToStringLabeller());
//创建图形鼠标并将其添加到可视化查看器
EditingModalGraphMouse gm=新建EditingModalGraphMouse(this.getRenderContext(),
GraphElements.MyVertexFactory.getInstance(),
GraphElements.MyEdgeFactory.getInstance());
//为边设置一些默认值。。。
GraphElements.MyEdgeFactory.setDefaultCapacity(10.0);
GraphElements.MyEdgeFactory.setDefaultWeight(10.0);
////正在试用新的弹出式菜单鼠标插件。。。
PopupVertexgeMenuMousePlugin myPlugin=新的PopupVertexgeMenuMousePlugin();
////为鼠标插件添加一些边和顶点的弹出菜单。
jpopumenu edgeMenu=新的MyMouseMenus.edgeMenu(框架);
jpopumenu vertexMenu=新建MyMouseMenus.vertexMenu();
myPlugin.setEdgePopup(edgeMenu);
myPlugin.setVertexPopup(vertexMenu);
gm.remove(gm.getPopupEditingPlugin());//删除现有的弹出式编辑插件
gm.add(myPlugin);//将我们的新插件添加到鼠标中
这是赛特格拉夫大厦(gm);
}
}
编译完这个类后,可以将它从“项目”窗口拖到网上