swing开发问题记录

1,今天用swing绘制的时候,发现一个十分奇怪的事情,绘制在frame的contentPane中的 树treeView
 在frame最小化,然后还原以后,树不见了。
 发现是因为在treeView的下面还有一个JScrollPane,初步怀疑是因为在frame最小化还原的时候,
 JScrollPane的位置发生了变化,没有在contentPane中显示了,导致JScrollPane中的treeView也没有
 显示,去掉JScrollPane以后,没有问题了。 具体的原因没有仔细研究,以后再分析JScrollPane吧。

frame = new JFrame("TaxonomyEditor");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // getContentPane
        contentPane = frame.getContentPane();
        // Tree View
        dtsTreeView = new JTree();
        dtsTreeView.setVisible(false);

        //
        // scrollPane = new JScrollPane(dtsTreeView);
        // scrollPane.setAutoscrolls(true);

        // scrollPane.setSize(680, 1);
        // scrollPane.setVisible(true); //
        contentPane.add(dtsTreeView);
        contentPane.setVisible(true);
        frame.pack();
        frame.setSize(700, 700);
        frame.setVisible(true);

 


 2,pack是调整窗口大小,尽量满足每一个组件的最优大小的情况下让窗口最小化。所以很多时候要修改窗口
 的大小setSize方法应该在pack方法之后调用。

    frame.getContentPane().add(this.panel);
        frame.pack();
        frame.setSize(800, 400);
        frame.setVisible(true);

 

posted @ 2013-04-01 16:17  rhino  阅读(328)  评论(0编辑  收藏  举报