/* * TabbedPaneDemo.java requires one additional file: * p_w_picpaths/middle.gif. */ import javax.swing.JTabbedPane; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.UIManager; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.KeyEvent; import javax.swing.JButton; public class TabbedPaneDemo extends JPanel { public TabbedPaneDemo() { super(new GridLayout(1, 1)); // super(); JTabbedPane tabbedPane = new JTabbedPane(); ImageIcon icon = createImageIcon("p_w_picpaths/middle.gif"); JComponent panel1 = makeTextPanel("Panel #1","标签1");//增加一个选项卡 tabbedPane.addTab("Tab 1", icon, panel1, "Does nothing"); tabbedPane.setMnemonicAt(0, KeyEvent.VK_1); JComponent panel2 = makeTextPanel("Panel #2","标签2"); tabbedPane.addTab("Tab 2", icon, panel2, "Does twice as much nothing"); tabbedPane.setMnemonicAt(1, KeyEvent.VK_2); JComponent panel3 = makeTextPanel("Panel #3","标签3"); tabbedPane.addTab("Tab 3", icon, panel3, "Still does nothing"); tabbedPane.setMnemonicAt(2, KeyEvent.VK_3); JComponent panel4 = makeTextPanel( "Panel #4 (has a preferred size of 410 x 50).","标签4"); panel4.setPreferredSize(new Dimension(410, 50)); tabbedPane.addTab("Tab 4", icon, panel4, "Does nothing at all"); tabbedPane.setMnemonicAt(3, KeyEvent.VK_4); JComponent panel5 = makeTextPanel("Panel #5","标签5"); panel5.setPreferredSize(new Dimension(410,50)); tabbedPane.addTab("标签5", icon,panel5,"测试用标签"); //Add the tabbed pane to this panel. add(tabbedPane); //The following line enables to use scrolling tabs. tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); } protected JComponent makeTextPanel(String text,String buttons) {//制定的组件 JPanel panel = new JPanel(false); JLabel filler = new JLabel(text); JButton button = new JButton(buttons); filler.setHorizontalAlignment(JLabel.CENTER); // panel.setLayout(new GridLayout(1, 1)); panel.add(filler); panel.add(button); return panel; } /** Returns an ImageIcon, or null if the path was invalid. */ protected static ImageIcon createImageIcon(String path) { java.net.URL imgURL = TabbedPaneDemo.class.getResource(path); if (imgURL != null) { return new ImageIcon(imgURL); } else { System.err.println("Couldn't find file: " + path); return null; } } /** * Create the GUI and show it. For thread safety, * this method should be invoked from * the event dispatch thread. */ private static void createAndShowGUI() { //Create and set up the window. JFrame frame = new JFrame("TabbedPaneDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Add content to the window. frame.add(new TabbedPaneDemo(), BorderLayout.CENTER); //Display the window. frame.pack(); frame.setVisible(true); } public static void main(String[] args) { //Schedule a job for the event dispatch thread: //creating and showing this application's GUI. SwingUtilities.invokeLater(new Runnable() { public void run() { //Turn off metal's use of bold fonts UIManager.put("swing.boldMetal", Boolean.FALSE); createAndShowGUI(); } }); } }