Java JtabbedPane中的JtabbedPane

Java JtabbedPane中的JtabbedPane,java,swing,jtabbedpane,Java,Swing,Jtabbedpane,我已经写了一个小程序来创建一个带有选项卡窗格的简单gui。目前它有两个选项卡。 在其中一个选项卡中,我创建了一个按钮,在另一个选项卡中,我创建了两个按钮(基于第三类中的字符串)。我无法在第二个选项卡中创建两个选项卡(“一个”和“两个”在代码中引用)选项卡中当前的两个按钮应该出现在每个子选项卡中。有人能告诉我如何实现这一点吗 主要类别: abc.java public class abc { JFrame frame; JTabbedPane tabPane;

我已经写了一个小程序来创建一个带有选项卡窗格的简单gui。目前它有两个选项卡。 在其中一个选项卡中,我创建了一个按钮,在另一个选项卡中,我创建了两个按钮(基于第三类中的字符串)。我无法在第二个选项卡中创建两个选项卡(“一个”和“两个”在代码中引用)选项卡中当前的两个按钮应该出现在每个子选项卡中。有人能告诉我如何实现这一点吗

主要类别: abc.java

public class abc {
        JFrame frame;
        JTabbedPane tabPane;
        abc_export exp;
        bsm_import2 imp;
        public static void main(String[] args) {
                abc jtab = new abc();
                jtab.start();
        }
        public void start(){
        exp=new abc_export();
        imp=new bsm_import2();
        tabPane.addTab("bsm_export", exp.tab);
        tabPane.addTab("bsm_import2", imp.tab);
        }

        public abc() {
                //  Create a frame
                frame = new JFrame();
                //  Create the tabbed pane.
                tabPane = new JTabbedPane();
                //Adding into frame
                frame.add(tabPane, BorderLayout.CENTER);
                frame.setSize(300, 300);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
                }

}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class abc_export {
        JPanel tab;
        public abc_export() {
                //Adding into frame
                tab = new JPanel();
                JButton btn=new JButton("run");
                tab.add(btn);
                tab.setOpaque(false);
                }
};
第二类:abc\u export.java

public class abc {
        JFrame frame;
        JTabbedPane tabPane;
        abc_export exp;
        bsm_import2 imp;
        public static void main(String[] args) {
                abc jtab = new abc();
                jtab.start();
        }
        public void start(){
        exp=new abc_export();
        imp=new bsm_import2();
        tabPane.addTab("bsm_export", exp.tab);
        tabPane.addTab("bsm_import2", imp.tab);
        }

        public abc() {
                //  Create a frame
                frame = new JFrame();
                //  Create the tabbed pane.
                tabPane = new JTabbedPane();
                //Adding into frame
                frame.add(tabPane, BorderLayout.CENTER);
                frame.setSize(300, 300);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
                }

}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class abc_export {
        JPanel tab;
        public abc_export() {
                //Adding into frame
                tab = new JPanel();
                JButton btn=new JButton("run");
                tab.add(btn);
                tab.setOpaque(false);
                }
};
第三类:bsm_import2.java(我需要在这里进行更改以创建子选项卡)

import javax.swing.*;
导入java.awt.*;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.io.*;
导入java.util.StringTokenizer;
导入java.util.*;
导入java.awt.event.*;
公共类bsm_导入2{
公共静态JPanel选项卡;
公共bsm_import2()
{
createAndShowGUI();
} 
私有静态void createAndShowGUI(){
tab=新的JPanel();
tab.setLayout(新网格布局(3,2));
String line=“tab1#一个tab2#两个”;
字符串字符串[]=行。拆分(“”);
JButton按钮[]=新JButton[100];
final Map=new HashMap();
for(int i=0;i

根据我从您的问题中了解到的情况,您可以做的是,在第二个选项卡的面板中添加一个新的
JTabbedPane
,其中两个选项卡各有一个按钮,您将得到您想要的。一个小的演示代码是:

JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane mainTabsPane = new JTabbedPane(); // main tabs pane

//first tab
JButton button = new JButton("Button in first tab");
JPanel jPanel = new JPanel();
jPanel.add(button);
mainTabsPane.addTab("First tab", jPanel);

//second tab
jPanel = new JPanel();
JTabbedPane secondaryTabsPane = new JTabbedPane(); // secondary tabs pane
button = new JButton("Button in second tab ---> first sub tab");
JPanel jPanel2 = new JPanel();
jPanel2.add(button);
secondaryTabsPane.addTab("First tab", jPanel2);
JPanel jPanel3 = new JPanel();
button = new JButton("Button in second tab ---> second sub tab");
jPanel3.add(button);
secondaryTabsPane.addTab("Second tab", jPanel3);
 // add secondary tabs pane to new panel of second tab
jPanel.add(secondaryTabsPane);
 // add new panel to main tabs pane
mainTabsPane.addTab("Second tab", jPanel);

frame.getContentPane().add(mainTabsPane);
frame.setVisible(true);

除此之外,您在这里直接引用另一个类中某个类的变量
tabPane.addTab(“bsm_导出”,exp.tab)。您不应该这样做,而是应该将其设置为私有,并提供getter/setter来访问它。还有,为什么这么小的东西有这么复杂的代码结构,在选项卡中显示按钮!!!??也要跟上,类名不应该从小字符开始。< / P> Harry,非常感谢。我会试试你的建议。我只是学习java。C++程序员,刚刚开始学习java。想用SWONG创建一些GUI。