3.主界面-主工作区

        主工作区主要还是一个panel,主要还是用javadocking将主工作区划分为四个部分,也就是四个小块,左上角放文件树,左下角暂时保留,右边中间是主工作区内容,右下放信息窗口,有什么需要打印的信息都可以放在右下角。

package QHgui;

import QHgui.docing.SDockPosition;
import SingleService.SingleInstance;
import SingleService.SingleInstanceKey;
import com.javadocking.DockingManager;
import com.javadocking.dock.TabDock;
import com.javadocking.dockable.DefaultDockable;
import com.javadocking.dockable.Dockable;
import com.javadocking.dockable.DockingMode;
import com.javadocking.model.DockingPath;

import javax.swing.*;
import java.awt.*;

/**
 * <p> TODU </P>
 *
 * @author yeager
 * @Version V1.1.1.0
 * @date 2023/11/24 10:33
 */
public class MainWorkingPanel extends DockManagerPanel{
    public static final String 			CENTER_DOCKING_PATH_ID  = "centerDockingPathId";
    //主要的界面
    JPanel msgPanel=null;
    DocumentTreePanel documentTreePanel=null;

    //主要的docker
    Dockable dockable_Message=null;
    private DockingPath messageDockingPath=null;
    Dockable dockable_project=null;

    Dockable dockable_mainwork=null;


    public MainWorkingPanel(Window ownerWindow)
    {
        super(ownerWindow);
    }

    /**
     * 初始化界面上的部件
     * @param ownerWindow
     */
    void initCompoments(Window ownerWindow)
    {
        //消息栏
        msgPanel=new JPanel();
        JLabel demo = new JLabel("demo");
        msgPanel.add(demo);
        SingleInstance.registerInstance(SingleInstanceKey.IMessagePanel, msgPanel);
        //文档树
        documentTreePanel=new DocumentTreePanel();
        SingleInstance.registerInstance(SingleInstanceKey.IDocumentTreePanel,documentTreePanel);

        initDocks();
    }

    /**
     * 初始化Dock
     */
    void initDocks()
    {
        //消息栏
        dockable_Message = new DefaultDockable("Message", msgPanel,"Message", null, DockingMode.ALL);
        dockable_Message=addNormalLimitActions(dockable_Message);
        addDockable(dockable_Message, SDockPosition.RightBottom,0);
        addDockingPath(dockable_Message);
        //文档树
        messageDockingPath= DockingManager.getDockingPathModel().getDockingPath(dockable_Message.getID());

        dockable_project = new DefaultDockable("Project", documentTreePanel, "Project", null, DockingMode.ALL);
        dockable_project=addNormalLimitActions(dockable_project);
        addDockable(dockable_project, SDockPosition.LeftTop,0);

        leftTopTabbedDock.setSelectedDockable(dockable_project);
    }

    public TabDock getMainWorkDockable()
    {
        return centerTabbedDock;
    }
    @Override
    public void LoadUI(Window ownerWindow)
    {
        super.LoadUI(ownerWindow);
        initCompoments(ownerWindow);
    }
    @Override
    public void LoadLayout(Dimension size) {
        // TODO 自动生成的方法存根

    }

    public void restoreAll()
    {

        updateDock();
        initDocks();

        this.repaint();
    }
}

初步实现后的样子:

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值