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

Swing 动态增添控件JTabbedPane

2012-11-05 
Swing 动态添加控件JTabbedPaneimport java.awt.BorderLayoutimport java.awt.Dimensionimport java.awt

Swing 动态添加控件JTabbedPane

import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTabbedPane;public class JDK6TabbedPaneExample {  private JFrame frame = new JFrame();  private JTabbedPane tabbedPane = new JTabbedPane();  private JButton addTabButton = new JButton("Add Tab");  private ImageIcon closeXIcon = new ImageIcon("C:/CloseX.gif");  private Dimension closeButtonSize;  private int tabCounter = 0;  public JDK6TabbedPaneExample() {    addTabButton.addActionListener(new ActionListener(){      public void actionPerformed(ActionEvent e){        add();              }          });    closeButtonSize = new Dimension(closeXIcon.getIconWidth() + 2, closeXIcon.getIconHeight() + 2);    frame.add(tabbedPane, BorderLayout.CENTER);    frame.add(addTabButton, BorderLayout.SOUTH);    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.pack();    frame.setMinimumSize(new Dimension(300, 300));    frame.setVisible(true);  }  public void add() {    final JPanel content = new JPanel();    JPanel tab = new JPanel();    tab.setOpaque(false);    JLabel tabLabel = new JLabel("Tab " + (++tabCounter));    JButton tabCloseButton = new JButton(closeXIcon);    tabCloseButton.setPreferredSize(closeButtonSize);    tabCloseButton.addActionListener(new ActionListener() {      public void actionPerformed(ActionEvent e) {        int closeTabNumber = tabbedPane.indexOfComponent(content);        tabbedPane.removeTabAt(closeTabNumber);      }    });    tab.add(tabLabel, BorderLayout.WEST);    tab.add(tabCloseButton, BorderLayout.EAST);    tabbedPane.addTab(null, content);    tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, tab);  }  public static void main(String[] args) {    JDK6TabbedPaneExample main = new JDK6TabbedPaneExample();  }}

热点排行