[英]Adding a button component to a java tabbed pane in java
我正在尝试使用Java swings创建GUI。我只是Java swings的初学者。 我的主要想法是创建两个选项卡,并在其中一个选项卡中添加一个按钮。
我想为每个选项卡编写一个单独的类,因此我创建了3个类,其中一个具有main方法。另外两个代表选项卡。
在其中一个标签中,我想在中间添加一个按钮,然后向该按钮添加一个动作监听器。
下面是具有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);
}
};
正如预期的那样,两个选项卡均已创建。但是我不了解在其中一个选项卡中添加按钮的想法。
现在我的问题是,是否要像我已经说过的那样在其中一个选项卡中添加按钮。我需要做什么?有人可以帮助我吗?
我不确定我是否理解您的意图,但是您可以尝试TabComponentsDemo
显示的方法,该方法已在如何使用选项卡式窗格:带有自定义组件的选项卡中进行了讨论。
您可以尝试使用setTabComponentAt方法。
该方法具有参数setTabComponentAt(int index, Component component)
,在其中仅提及所需的组件。
您可以在此处引用链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.