首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

设立可关闭的tab

2012-09-02 
设置可关闭的tab?package demo.swingimport java.awt.Componentimport java.awt.Dimensionimport java.

设置可关闭的tab

设立可关闭的tab

?

package demo.swing;import java.awt.Component;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent; import javax.swing.JCheckBoxMenuItem;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JPanel;import javax.swing.JTabbedPane;import javax.swing.KeyStroke;import javax.swing.SwingUtilities; public class TabComponentsDemo extends JFrame{     private JTabbedPane pane = new JTabbedPane();    private JMenuItem scrollTabItem ;    private JMenuItem componentTabItem;    private final int numTab = 5;          public TabComponentsDemo(String title) {       //设置frame标题名       super(title);       //设置关闭方式       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       //创建菜单栏       initMenu();       //将tabpane添加到frame中       add(pane);          }       //初始化tabpanel相关配置,并且用于resize的调用    public  void runTest() {       //设置有关闭按键的标签       componentTabItem.setSelected(true);             //设置标签       for(int i = 0 ; i < numTab ; i++)       {           //标签名           String name = "tab "+i;           //创建标签           pane.add(name,createContent(name));           //初始化标签上的文字和Button           initTabComponent(i);       }                   //设置frame的大小       setSize(new Dimension(500,500));       //将frame放到屏幕的正中央       setLocationRelativeTo(null);       //显示frame       setVisible(true);           }       //创建标签内容部分    private Component createContent(String name) {       //创建一个panel,并设置布局为一个分块       JPanel panel = new JPanel(new GridLayout(1,1));       //创建一个label       JLabel label = new JLabel(name);       //设置label的文本格式       label.setHorizontalAlignment(JLabel.CENTER);       //将label放入panel中       panel.add(label);       return panel;    }     //初始化带有关闭按钮的标签头部    private void initTabComponent(int i) {       //用这个函数可以初始化标签的头部       pane.setTabComponentAt(i, new ButtonTabComponent(pane));       }       //创建菜单栏    private void initMenu() {       //创建一个菜单条       JMenuBar mb = new JMenuBar();             //创建重叠tab选项       scrollTabItem = new JCheckBoxMenuItem("重叠tab");       //设置快捷键        scrollTabItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));       //设置监听事件       scrollTabItem.addActionListener(new ActionListener() {                     @Override           public void actionPerformed(ActionEvent arg0) {              if(pane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT)                  pane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);              else                  pane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);           }       });             //设置可关闭的标签的菜单       componentTabItem = new JCheckBoxMenuItem("设置可关闭的tab");      componentTabItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));       componentTabItem.addActionListener(new ActionListener() {                     @Override           public void actionPerformed(ActionEvent e) {              for(int i = 0 ; i < numTab ; i++)              {                  if(componentTabItem.isSelected())                     initTabComponent(i);                  else                     pane.setTabComponentAt(i, null);              }           }       });             //设置重置标签       JMenuItem reSetItem = new JMenuItem("重置");       reSetItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));       reSetItem.addActionListener(new ActionListener() {                     @Override           public void actionPerformed(ActionEvent e) {              runTest();           }       });             //创建菜单       JMenu menu = new JMenu("选项");       //添加菜单项       menu.add(componentTabItem);       menu.add(scrollTabItem);       menu.add(reSetItem);             //添加菜单       mb.add(menu);       //添加菜单条(注意一个frame只能有一个菜单条,所以用set)       setJMenuBar(mb);          }     public static void main(String[] args) {       SwingUtilities.invokeLater(new Runnable() {                     @Override           public void run() {              new TabComponentsDemo("可关闭的tab测试").runTest();           }       });    }  }  
?

热点排行