Java应用技巧——为JTabbedPane添加关闭按钮 收藏
JTabbedPane组件
很多人都为无法在JTabbedPane的标题上添加关闭按钮而苦恼。其实从Java SE 6开始,这个问题已经解决了,看下面这个例子:
view plaincopy to clipboardprint?
//文件名: tab.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class tab extends JFrame { tab() { super("选项卡窗格"); setVisible(true); setSize(500,310); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton btn = new JButton("X"); JTabbedPane pane = new JTabbedPane(); JLabel lab = new JLabel("选项卡I"); pane.addTab("i",lab); pane.setTabComponentAt(pane.indexOfComponent(lab),btn); add(pane); } public static void main(String[] args) { new tab(); } } //文件名: tab.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class tab extends JFrame { tab() { super("选项卡窗格"); setVisible(true); setSize(500,310); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton btn = new JButton("X"); JTabbedPane pane = new JTabbedPane(); JLabel lab = new JLabel("选项卡I"); pane.addTab("i",lab); pane.setTabComponentAt(pane.indexOfComponent(lab),btn); add(pane); } public static void main(String[] args) { new tab(); } }
运行结果如下:
请注意,标题上不是文本,是一个按钮。起作用的是第22行的代码:
pane.setTabComponentAt(pane.indexOfComponent(lab),btn);
在这里,我要向大家介绍JTabbedPane类的三个方法:
void setTabComponentAt(int index,Compomnent component)
——该方法用于给指定index的选项卡标题添加控件,空间可以是任何类型,只要是Component的子类。如果index超出范围,则抛出IndexOutOfBoundsException异常。若选项卡标题上已经有Component组件,则抛出IllegalArgumentException异常。
Component getTabComponent(int index)
——该方法用于获取指定index的选项卡标题上的控件。如果index超出范围,则抛出IndexOutOfBoundsException异常。
int indexOfTabComponent(Component component)
——该方法用于获取标题空间为component的选项卡序号。若没有符合要求的选项卡,则返回-1。
使用这三个方法,就可以设置选项卡标题上的组建了。如果设置为JPanel类型,还可以添加多个组件,这也就不用再为无法添加关闭按钮而郁闷了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ProComFan/archive/2010/01/02/5121244.aspx