欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swing选项卡(JTabbedPane)的使用

程序员文章站 2024-01-31 22:57:10
...

使用选项卡可以在有限的布局空间内展示更多的内容。Swing 使用 JTabbedPane 类实现选项卡。

参考资料:
添加链接描述

一、构造方法:

  • JTabbedPane():创建一个具有默认 JTabbedPane.TOP 布局的空 TabbedPane。
  • JTabbedPane(int tabPlacement):创建一个空的
    TabbedPane,使其具有以下指定选项卡布局中的一种:JTabbedPane.TOP、JTabbedPane.BOTTOM、JTabbedPane.LEFT
    或 JTabbedPane.RIGHT。

创建了 JTabbedPane 实例之后,可使用 addTab() 方法和 insertTab() 方法将选项卡/组件添加到 TabbedPane 对象中。选项卡通过对应于添加位置的索引来表示,其中第一个选项卡的索引为 0,最后一个选项卡的索引为选项卡数量减 1。

TabbedPane 使用 SingleSelectionModel 属性来表示选项卡索引集和当前所选择的索引。如果选项卡数量大于 0,则总会有一个被选定的索引,此索引默认被初始化为第一个选项卡;如果选项卡数量为 0,则所选择的索引为 -1。

二、常用方法:

Swing选项卡(JTabbedPane)的使用
选项卡面板和卡片布局不同的是,选项卡面板可以有标签。

三、实例:

package swing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
/**
 * 选项卡面板  JTabbedPane
 */
public class Demo34_JTabbedPane extends JPanel{
	public static void main(String[] args) {
		JFrame frame=new JFrame("我的电脑 - 属性");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new Demo34_JTabbedPane(),BorderLayout.CENTER);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        frame.setVisible(true);
	}
	public Demo34_JTabbedPane() {
		super(new GridLayout(1,1));
	    JTabbedPane tabbedPane=new JTabbedPane();
	    ImageIcon icon=createImageIcon("NEW.png");
	    JComponent panel1=makeTextPanel("计算机名");
	    tabbedPane.addTab("计算机名",icon, panel1,"Does nothing");
	    tabbedPane.setMnemonicAt(0,KeyEvent.VK_1);
	    JComponent panel2=makeTextPanel("硬件");
	    tabbedPane.addTab("硬件",icon,panel2,"Does twice as much nothing");
	    tabbedPane.setMnemonicAt(1,KeyEvent.VK_2);
	    JComponent panel3=makeTextPanel("高级");
	    tabbedPane.addTab("高级",icon,panel3,"Still does nothing");
	    tabbedPane.setMnemonicAt(2,KeyEvent.VK_3);
	    JComponent panel4=makeTextPanel("系统保护");
	    panel4.setPreferredSize(new Dimension(410,50));
	    tabbedPane.addTab("系统保护",icon,panel4,"Does nothing at all");
	    tabbedPane.setMnemonicAt(3,KeyEvent.VK_4);
	    add(tabbedPane);
	}
	protected JComponent makeTextPanel(String text){
	    JPanel panel=new JPanel(false);
	    JLabel filler=new JLabel(text);
	    filler.setFont(new Font("宋体", 1, 50));
	    filler.setHorizontalAlignment(JLabel.CENTER);
	    panel.setLayout(new GridLayout(1,1));
	    panel.add(filler);
	    return panel;
	}
	protected static ImageIcon createImageIcon(String path){
	    java.net.URL imgURL=Demo34_JTabbedPane.class.getResource(path);
	    if(imgURL!=null){
	        return new ImageIcon(imgURL);
	    }
	    else{
	        System.err.println("Couldn't find file: "+path);
	        return null;
	    }
	}
}
package swing;

import java.awt.Toolkit;

import javax.swing.JFrame;

public class SwingUtils {
	public static void setCenter(JFrame jf) {
		int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;
		int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height; 
		int jframeWidth = 800;
		int jframeHeight = 600;
		jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2), 
        		jframeWidth, jframeHeight);
	}
}

Swing选项卡(JTabbedPane)的使用

相关标签: Java # Swing