zoukankan      html  css  js  c++  java
  • TabbedPaneDemo

    package swing.tabbedpane;
    
    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.ImageIcon;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JTabbedPane;
    import javax.swing.JToggleButton;
    import javax.swing.SwingConstants;
    import javax.swing.SwingUtilities;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    /*2015-7-12*/
    public class TabbedPaneTest {
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    JFrame frame = new TabbedPaneFrame();
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setVisible(true);
                    frame.setLocationRelativeTo(null);
                }
            });
        }
    
    }
    
    class TabbedPaneFrame extends JFrame {
        private static final long serialVersionUID = -7748936498904415868L;
        private static final int DEFAULT_WIDTH = 400;
        private static int DEFAULT_HEIGHT = 400;
        private JTabbedPane tabbedPane;
    
        public TabbedPaneFrame() {
            setTitle(getClass().getSimpleName());
            setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    
            tabbedPane = new JTabbedPane();
            ImageIcon icon = new ImageIcon(getClass().getResource("/swing/tabbedpane/blue-ball.gif").getPath());
            tabbedPane.addTab("Mercury", icon, null);
            tabbedPane.addTab("Venus", icon, null);
            tabbedPane.addTab("Earth", icon, null);
            tabbedPane.addTab("Mars", icon, null);
            tabbedPane.addTab("Jupiter", icon, null);
            tabbedPane.addTab("Saturn", icon, null);
            tabbedPane.addTab("Uranus", icon, null);
            tabbedPane.addTab("Neptune", icon, null);
            tabbedPane.addTab("Pluto", null, null);
    
            final int plutoIndex = tabbedPane.indexOfTab("Pluto");
            JPanel plutoPanel = new JPanel();
            plutoPanel.add(new JLabel("Pluto", icon, SwingConstants.LEADING));
            JToggleButton plutoCheckBox = new JCheckBox();
            plutoCheckBox.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    tabbedPane.remove(plutoIndex);
                }
            });
    
            plutoPanel.add(plutoCheckBox);
            tabbedPane.setTabComponentAt(plutoIndex, plutoPanel);
    
            // add(tabbedPane, "Center");
            add(tabbedPane, BorderLayout.CENTER);
    
            tabbedPane.addChangeListener(new ChangeListener() {
    
                @Override
                public void stateChanged(ChangeEvent e) {
                    if (tabbedPane.getSelectedComponent() == null) {
                        int n = tabbedPane.getSelectedIndex();
                        loadTab(n);
                    }
    
                }
            });
    
            loadTab(0);
            JPanel buttonPanel = new JPanel();
            ButtonGroup buttonGroup = new ButtonGroup();
            JRadioButton wrapButton = new JRadioButton("Wrap tabs");
            wrapButton.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    tabbedPane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT);
                }
            });
            buttonPanel.add(wrapButton);
            buttonGroup.add(wrapButton);
    
            wrapButton.setSelected(true);
            JRadioButton scrollButton = new JRadioButton("Scroll tabs");
            scrollButton.addActionListener(new ActionListener() {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
                }
            });
    
            buttonPanel.add(scrollButton);
            buttonGroup.add(scrollButton);
            add(buttonPanel, BorderLayout.SOUTH);
    
        }
    
        protected void loadTab(int n) {
            String title = tabbedPane.getTitleAt(n);
            String filePath = getClass().getResource("/swing/tabbedpane/" + title.toLowerCase() + ".png").getPath();
            ImageIcon planetIcon = new ImageIcon(filePath);
            tabbedPane.setComponentAt(n, new JLabel(planetIcon));
            tabbedPane.setIconAt(n, new ImageIcon(getClass().getResource("/swing/tabbedpane/red-ball.gif").getPath()));
        }
    
    }
  • 相关阅读:
    基于erlang的mud游戏引擎开发
    生成数据库所有表的查询语句
    查找表字段语句
    基础算法总结 Java 版
    ArrayList源码学习
    云服务器安装 Mysql 5.7
    n个元素进栈,共有多少种出栈顺序?
    MyBatis 学习
    Spring学习笔记之AOP
    原来你是这样的 IntegerCache
  • 原文地址:https://www.cnblogs.com/softidea/p/4641853.html
Copyright © 2011-2022 走看看