QHYun_practice-13
主工作区主要还是一个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(); } }
初步实现后的样子:

 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号