首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内帧内的图形流小

内帧内的图形流小
EN

Stack Overflow用户
提问于 2016-04-23 15:05:44
回答 1查看 1K关注 0票数 0

我试图改变图形流中的图的大小,但是它失败了,甚至变小了。

这是我的密码。一开始,我无法设置窗口标题,所以我唯一的选择是创建一个JFRAMe并将视图嵌入其中。所以,如果有一个选项来设置图的标题,我会很感激的。

这是我的密码。

代码语言:javascript
复制
public class Clicks implements ViewerListener {
    protected boolean loop = true;

    public static void main(String args[]) throws InterruptedException {
        new Clicks();
    }
    public Clicks() throws InterruptedException {
             System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
        // We do as usual to display a graph. This
        // connect the graph outputs to the viewer.
        // The viewer is a sink of the graph.
        Graph graph = new MultiGraph("Clicks");
                graph.addAttribute("ui.stylesheet", "node#D{ fill-color:red; }node{ stroke-mode: plain;size:20;text-size:30;stroke-color:#333333;text-background-color:#FFF;text-background-mode:plain;text-alignment:above;}");




                Node D = graph.addNode("D");
                Node J = graph.addNode("J");
        Viewer viewer = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
                View view = viewer.addDefaultView(false);


                JFrame frame = new JFrame("title");
                frame.setSize(1000, 1000);
                frame.add((Component) view);
                frame.pack();
                frame.setVisible(true);

                ViewerPipe fromViewer = viewer.newViewerPipe();
        fromViewer.addViewerListener(this);
        fromViewer.addSink(graph);



        while(loop) {
            fromViewer.blockingPump();// or fromViewer.blockingPump(); in the nightly builds
        }
    }

    public void viewClosed(String id) {
        loop = false;
    }

    public void buttonPushed(String id) {

    }

    public void buttonReleased(String id) {
        System.out.println("Button released on node "+id);
    }
}

@编辑

即使应用了提议的修改,它也不起作用。

公共单击()抛出InterruptedException {InterruptedException //我们将一如既往地显示图形。这个//将图形输出连接到查看器。//查看器是图形的接收器。图图=新的MultiGraph(“单击”);graph.addAttribute("ui.stylesheet","node#D{填充颜色:红色;}节点{笔画模式:graph.addAttribute“)

代码语言:javascript
复制
        Node D = graph.addNode("D");
        Node J = graph.addNode("J");
Viewer viewer = new Viewer(graph, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
        View view = viewer.addDefaultView(false);


        JFrame frame = new JFrame("title");
        frame.add((Component) view);


        ViewerPipe fromViewer = viewer.newViewerPipe();
fromViewer.addViewerListener(this);
fromViewer.addSink(graph);

        frame.pack();
        frame.setVisible(true);


while(loop) {
    fromViewer.blockingPump();// or fromViewer.blockingPump(); in the nightly builds
}

}

当我运行它时,窗口大小很小,我必须手动调整它的大小。

有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-23 15:41:34

当我运行它时,窗口大小很小,我必须手动调整它的大小。

代码语言:javascript
复制
frame.pack();
frame.setVisible(true);

ViewerPipe fromViewer = viewer.newViewerPipe();
fromViewer.addViewerListener(this);
fromViewer.addSink(graph);

在使框架可见之前,需要将所有组件添加到框架中。

因此,守则应该是:

代码语言:javascript
复制
ViewerPipe fromViewer = viewer.newViewerPipe();
fromViewer.addViewerListener(this);
fromViewer.addSink(graph);

frame.pack();
frame.setVisible(true);

此外,不需要使用以下一行:

代码语言:javascript
复制
//frame.setSize(1000, 1000);

pack()方法将根据添加的所有组件的首选大小重置大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36812472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档