首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法调整JInternalFrame大小

无法调整JInternalFrame大小
EN

Stack Overflow用户
提问于 2015-10-23 12:32:34
回答 1查看 699关注 0票数 0

我将JTreeJInternalFrame添加到JDesktopPane中。我想调整JInternalFrame的大小,但是做不到it.But,我可以在里面移动Internalframe。

代码语言:javascript
复制
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.OverlayLayout;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class TableDiff {

public static void main(String[] args) {
    JDesktopPane panel = new JDesktopPane() {
       // @Override
       // public boolean isOptimizedDrawingEnabled() {
       //     return false;
       // }
    };
    panel.setLayout(new OverlayLayout(panel));
    JTree tree = new JTree();
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
    for (int i = 0; i < 10; i++) {
        DefaultMutableTreeNode node = new DefaultMutableTreeNode(i + "x");
        for (int j = 0; j < 5; j++) {
            node.add(new DefaultMutableTreeNode(i + "x"));
        }
        root.add(node);
    }
    tree.setModel(new DefaultTreeModel(root));
    JScrollPane tscrollpane = new JScrollPane(tree);

    JInternalFrame iFrame = new JInternalFrame("asd");
    iFrame.setClosable(true);
    iFrame.setMaximizable(true);
    iFrame.setResizable(true);
    iFrame.setIconifiable(true);
    iFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
   // tscrollpane.setAlignmentX(1.0f);
  //  tscrollpane.setAlignmentY(0.0f);
   // iFrame.setAlignmentX(0.0f);
   // iFrame.setAlignmentY(0.0f);
    panel.add(tscrollpane);
    panel.add(iFrame);

    iFrame.setVisible(true);

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(panel);
    frame.pack();
    frame.setVisible(true);
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-23 12:45:19

您的问题是使用OverlayLayout

只需删除以下一行:

代码语言:javascript
复制
panel.setLayout(new OverlayLayout(panel));

另外,非常重要的是,不要忘记设置您的JFrameJInternalFrame的首选大小!

根据Java Swing使用内部框架的Oracle文档(链接)

必须设置内部框架的大小. 如果不设置内部框架的大小,则它将为零大小,因此永远不可见。可以使用下列方法之一设置大小:setSizepacksetBounds

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

https://stackoverflow.com/questions/33302444

复制
相关文章

相似问题

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