Adding a button component to a java tabbed pane in java

爱⌒轻易说出口 提交于 2019-12-02 13:59:55

问题


i am trying to create GUI using java swings.I am just a beginner in java swings. My primary idea was to create two tabs and add a button in one of the tabs.

I wanted to write a separate class for each tab so i created 3 classes out of which one has the main method.and the other two represent the tabs.

In one of the tabs i wanted to add a button in middle and add an action listener to that button.

below is the class which has the main method.

public class abc {
    JFrame frame;
    JTabbedPane tabPane;
    ImageIcon close;
    Dimension size;
    int tabCounter = 0;
    abc_export exp;
    abc_import imp;
    public static void main(String[] args) {
        abc jtab = new abc();
        jtab.start();
    }
    public void start(){
    exp=new abc_export();
    imp=new abc_import();
    tabPane.addTab(null, exp.panel);
    tabPane.addTab(null, imp.panel);
    tabPane.setTabComponentAt(tabPane.getTabCount()-1, exp.tab);
    tabPane.setTabComponentAt(tabPane.getTabCount()-1, imp.tab);
    }

    public abc() {
        //  Create a frame
        frame = new JFrame();
        //  Create the tabbed pane.
        tabPane = new JTabbedPane();
        //  Create a button to add a tab
        //  Create an image icon to use as a close button
        close = new ImageIcon("C:/JAVAJAZZUP/tabClose.gif");
        size = new Dimension(close.getIconWidth()+1, close.getIconHeight()+1);
        //Adding into frame
        frame.add(tabPane, BorderLayout.CENTER);
        frame.setSize(300, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        }

};

below is code for one of the tabs.although the other tab is also having the same code which represent other tab with different class name.

public class abc_import {
    ImageIcon close;
    Dimension size;
    int tabCounter = 0;
    JPanel tab;
    final JPanel panel;
    public abc_import() {
        close = new ImageIcon("C:/JAVAJAZZUP/tabClose.gif");
        size = new Dimension(close.getIconWidth()+1, close.getIconHeight()+1);
        //Adding into frame
        JLabel label = null;
        panel = new JPanel();
        //  Create a panel to represent the tab
        tab = new JPanel();
        tab.setOpaque(false);
        String str = "abc_import";
        label = new JLabel(str);
        tab.add(label, BorderLayout.WEST);
        }
};

as expected both the tabs are created.But i am out of ideas about adding a button inside one of the tabs.

Now my question here is if i wanted to add a button in one of the tabs as i already said.what do i need to do?can anyone help me?


回答1:


I'm not sure I understand your intent, but you might try the approach shown in the TabComponentsDemo, discussed in How to Use Tabbed Panes: Tabs With Custom Components.

A related example is shown here.




回答2:


You can try by using setTabComponentAt method.

This methd has the parameter setTabComponentAt(int index, Component component), in which you just mention the component you want.

You can refer a link here.



来源:https://stackoverflow.com/questions/13901609/adding-a-button-component-to-a-java-tabbed-pane-in-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!