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