【问题标题】:Adding a button component to a java tabbed pane in java在java中将按钮组件添加到java选项卡式窗格
【发布时间】:2012-12-03 19:23:34
【问题描述】:

我正在尝试使用 java swings 创建 GUI。我只是 java swings 的初学者。 我的主要想法是创建两个选项卡并在其中一个选项卡中添加一个按钮。

我想为每个选项卡编写一个单独的类,因此我创建了 3 个类,其中一个具有主要方法。另外两个代表选项卡。

在其中一个选项卡中,我想在中间添加一个按钮并向该按钮添加一个动作侦听器。

下面是具有main方法的类。

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);
        }

};

以下是其中一个选项卡的代码。虽然另一个选项卡也具有相同的代码,代表具有不同类名的其他选项卡。

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);
        }
};

正如预期的那样,两个选项卡都已创建。但我不知道在其中一个选项卡内添加按钮。

现在我的问题是,如果我想在其中一个选项卡中添加一个按钮,正如我已经说过的那样。我需要做什么?谁能帮助我?

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE
  • 我想在其中一个选项卡中添加一个按钮组件。
  • @sarathi:如果以下任何一个答案对您有用,请接受该答案,以便对其他人有所帮助。

标签: java swing awt jbutton jtabbedpane


【解决方案1】:

我不确定我是否理解您的意图,但您可以尝试TabComponentsDemo 中显示的方法,在How to Use Tabbed Panes: Tabs With Custom Components 中进行了讨论。

一个相关的例子显示在here

【讨论】:

  • 假设我想在一个标签中添加一个简单的文本框,在另一个标签中添加一个按钮
  • 我会小心不要试图在标签本身中施加过多的压力,但不同的标签可以有不同的组件。
【解决方案2】:

您可以尝试使用 setTabComponentAt 方法。

这个方法有参数setTabComponentAt(int index, Component component),你只需要在其中提到你想要的组件。

您可以参考链接here

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2016-10-09
  • 1970-01-01
相关资源
最近更新 更多