在netbeans中使用java创建新组件

在netbeans中使用java创建新组件,java,swing,layout-manager,swingx,jxtaskpane,Java,Swing,Layout Manager,Swingx,Jxtaskpane,我正在为我的大学项目开发一个软件。我正在使用java开发我的桌面应用程序。为此,我想添加如下组件: 我想添加一个组件,它类似于下面框架左侧的组件。它是一个可调整大小的组件,包含标题及其子菜单。我们也可以在WindowsXP操作系统的左侧看到这些组件。我努力开发这个组件,只能制作一个可调整大小的组件,但这并不能减少它们之间的空白。我将把我的代码和我的应用程序的示例设计放在下面。如果有人能给我一个解决方案,让我的组件像我希望的那样工作,或者给我一个好的解决方案,让这个组件工作,我将非常感激。非常感谢

我正在为我的大学项目开发一个软件。我正在使用java开发我的桌面应用程序。为此,我想添加如下组件:

我想添加一个组件,它类似于下面框架左侧的组件。它是一个可调整大小的组件,包含标题及其子菜单。我们也可以在WindowsXP操作系统的左侧看到这些组件。我努力开发这个组件,只能制作一个可调整大小的组件,但这并不能减少它们之间的空白。我将把我的代码和我的应用程序的示例设计放在下面。如果有人能给我一个解决方案,让我的组件像我希望的那样工作,或者给我一个好的解决方案,让这个组件工作,我将非常感激。非常感谢。:)


Ps:由于本网站的限制,我无法上传我的图片,我恳请您使用以上medeafire链接查看。非常感谢

当您在问题上添加标签时,请使用它,而不是重新发明轮子:-)您正在寻找的组件称为JXTaskPane/Container

顺便说一句:在EDT上睡觉(就像你在代码片段中的mouseListener方法中所做的那样)是错误的-就像真正错误的-不要这样做。手动设置尺寸/位置组件也一样:这是合适的LayoutManager的专有任务

    private void lbl1MousePressed(java.awt.event.MouseEvent evt) {                                  
    if (!(jpnTop.getSize().equals(lbl1.getSize()))) {
        try {
            Thread.sleep(100);
            jpnTop.setSize(lbl1.getSize());

        } catch (InterruptedException ex) {
        }

    } else {
        try {
            Thread.sleep(100);
            jpnTop.setSize(169, 162);


        } catch (InterruptedException ex) {
        }
    }
}  

  private void lbl2MousePressed(java.awt.event.MouseEvent evt) {                                  
    if (!(jpnLow.getSize().equals(lbl2.getSize()))) {
        try {
            Thread.sleep(100);
            jpnLow.setSize(lbl2.getSize());

        } catch (InterruptedException ex) {
        }

    } else {
        try {
            Thread.sleep(100);
            jpnLow.setSize(169, 162);

        } catch (InterruptedException ex) {
        }
    }
}