1

我的英语很差,所以请原谅我的语法错误。我是java swings的新手,我的意图是动态创建许多jinternalframes,每个jintenalframe都是可移动的,即可以自由拖动并保存在任何地方,这是我通过组件移动器类实现的。现在我面临的问题是我无法调整这些内部框架的大小。每当我调整这些 jinternalFrames 的大小时,它们都会恢复到相同的大小。我什至使用组件侦听器注册了调整大小事件,下面的代码描述了:

this.addComponentListener(new ComponentAdapter() {
    public void componentResized(ComponentEvent ce)
    {
      setDinamicSize(ce)
    }
}); 

private void setDinamicSize(ComponentEvent ce)
{
    JInternalFrame tempFrame = (JInternalFrame)ce.getSource();
    tempFrame.setSize(new Dimension(tempFrame.getAlignmentX(),tempFrame.getAlignmenty()));
}

请帮帮我。提前致谢

4

1 回答 1

4

JDesktopPaneJInternalFrames 的容器,它负责定位和(如果您正确构建了内部框架)调整大小......

在此处输入图像描述

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestDesktopPane {

    public static void main(String[] args) {
        new TestDesktopPane();
    }

    public TestDesktopPane() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JDesktopPane pane = new JDesktopPane();
                JInternalFrame inFrame = new JInternalFrame("No Hands", true, true, true, true);
                inFrame.setBounds(10, 10, 100, 100);
                inFrame.setVisible(true);
                pane.add(inFrame);

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(pane);
                frame.setSize(400, 400);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

}

查看如何使用内部框架了解更多详情

于 2013-09-19T07:35:17.237 回答