如何在JTabbedPanel中创建可滚动的Jpanel?

时间:2015-07-13 23:10:11

标签: java swing jframe jscrollpane

我正在尝试制作一个包含JFrame的{​​{1}}。有3个选项卡,每个选项卡内部都有一个面板。第一个面板(又名第一个标签)必须有3个元素垂直:一个JTabbedPane,一个图片和一个文本区域。选项卡必须始终在顶部可见,同时可以滚动选项卡的内容。无论我尝试了什么(windowbuilder,其他Stackoverflow的答案),我似乎无法做到这一点。

2 个答案:

答案 0 :(得分:4)

如果没有您尝试过的任何代码,我可以举一些例子。

    // Tabbed pane
    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    contentPane.add(tabbedPane, BorderLayout.CENTER);
    // First panel
    JPanel pan1 = new JPanel(new GridLayout(3, 1));

    // Content of First panel
    JLabel lbl1 = new JLabel("Test1");
    pan1.add(lbl1);

    JTextField textField_3 = new JTextField();
    textField_3.setColumns(10);
    pan1.add(textField_3);

    JTextField  textField_4 = new JTextField();
    textField_4.setColumns(10);
    pan1.add(textField_4);
    // Second panel
    JPanel pan2 = new JPanel(new GridLayout(3, 1));
    // Content of Second panel
    JLabel lbl2 = new JLabel("Test2");
    pan2.add(lbl2);
    // First Scroll pane
    JScrollPane scrollPane1 = new JScrollPane(pan1);
    // Second Scroll pane
    JScrollPane scrollPane2 = new JScrollPane(pan2);

    tabbedPane.add("Tab1", scrollPane1);
    tabbedPane.add("Tab2", scrollPane2);

使用标签,图片等更改面板内容。也可以更改其布局。如果您提供一些代码,我可以为您提供准确的解决方案。

答案 1 :(得分:3)

你有很多选择......

首先看一下How to Use Scroll Panes

你可以......

JScrollPane直接放在标签下...

JTabbedPane tabbedPane = ...
JPanel theView = ...
// Place the elements you want to show on the panel...

JScrollPane scrollPane = new JScrollPane(theView);
tabbedPane.add("Tab with scroll pane", scrollPane);

你可以......

将滚动窗格放在另一个容器中,然后将其添加到选项卡式窗格...

JTabbedPane tabbedPane = ...
JPanel theView = ...
// Place the elements you want to show on the panel...

JScrollPane scrollPane = new JScrollPane(theView);
JPanel tabPane = new JPanel(new BorderLayout()); // As an example layout
tabPane.add(scrollPane);

tabbedPane.add("Tab with panel with scroll pane", tabPane);

基本上,JScrollPane只是另一个组件/容器,它允许在任何可以使用其他组件/容器的地方使用它。