根据用户选择使用JScroll窗格填充JTabbed窗格

时间:2016-04-14 15:02:25

标签: java swing

我们有一个大学项目,该项目是为完成课程作业提供讲义和反馈。

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

我已经创建了所有必要的表格和窗口,我只是不确定如何前进。 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 个答案:

答案 0 :(得分: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);
}