2016-04-14 40 views
0

我们有一个大学项目,该项目是一个为讲习班完成的讲义和反馈的程序。根据用户选择填充JTabbed窗格和JScroll窗格

我们已经想到的是跌断了整个事情成小块,例如: 你需要编写一个程序和结果等 报表中的课程因此,用户将创建一个新课程通过选择“代码”和“报告”选项,因为这是必需的。然后我们需要在程序中创建相应的选项卡,以便用户可以输入需要的内容。

我已经创建了所有必要的窗体和窗口,这只是我不确定如何继续前进。 a)我应该在哪里放置我的代码?我应该在“创建”事件上使用它吗? b)我如何做这整个定制人口的事情?

显然,我并没有要求在代码中的整个事情。我甚至不知道要读什么和要搜索什么。

以下是ui的一些截图,以帮助解释我的意思。

新建项目窗口 New project window

如何在主窗口应该是创建一个新谟之后。注意各个标签。 How the main window should be after creating a new projet. Notice the various tabs.

一个报表反馈 A form for report feedback

回答

1

在您的 “创建” 按钮,单击检查的checkbox.isSelected(),并使用下面的方法:

if(reportCheckbox.isSelected()){ 
    addonScreen(new reportFrame(),"Report Submission"); 
    addonScreen(new reportFeedbackFrame(),"Report Feedback"); 
} 

使用桌面窗格作为容器...将您的标签窗格添加到它

public static JTabbedPane tabbedPane = new JTabbedPane(); 
jDesktopPane1.add(tabbedPane); 

使用此方法在运行时将布局添加到布局

public static void addOnScreen(JInternalFrame inFrame, String title) { 
    //border for the internal frame   

    javax.swing.plaf.InternalFrameUI ifu = inFrame.getUI(); 
    ((javax.swing.plaf.basic.BasicInternalFrameUI) ifu).setNorthPane(null); 
    Border b1 = new LineBorder(new Color(114, 139, 173), 3, true) { 
    }; 

    tabbedPane.setBounds(0, 0, jDesktopPane1.getWidth(), jDesktopPane1.getHeight()); 
    inFrame.setLocation(0, 0); 
    inFrame.setSize(jDesktopPane1.getWidth(), jDesktopPane1.getHeight()); 
    inFrame.setBorder(b1); 
    JPanel jp = new JPanel(); 
    jp.setLayout(new GridLayout()); 
    jp.setOpaque(true); 
    jp.add(inFrame); 
    tabbedPane.addTab(title, jp); 
    tabbedPane.setSelectedComponent(jp); 
    inFrame.requestFocusInWindow(); 
    inFrame.setVisible(true); 
    tabbedPane.setVisible(true); 
}