7. 标签面板

效果图:

JTabbedPaneDemo .java:
package com.lvshitech.gui;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class JTabbedPaneDemo {
	public static void main(String[] args) {
		new MyTabbedPane();
	}
}

@SuppressWarnings("serial")
class MyTabbedPane extends JFrame implements ChangeListener, ActionListener {
	
	JTabbedPane jt;
	JButton jb[];
	int index = 0;
	
	public MyTabbedPane() {
		super("使用标签面板容器");
		jt = new JTabbedPane();
		jb = new JButton[5];
		for (int i=0; i<5; i++) {
			jb[i] = new JButton("第  " + i + " 页面板");
			jb[i].addActionListener(this);
			jt.addTab("页标签" + i, jb[i]);			
		}
		jt.addChangeListener(this);
		getContentPane().add(jt, BorderLayout.CENTER);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300, 200);
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		setTitle("响应单击" + ((JButton)e.getSource()).getText());	// 单击按钮会改变JFrame的标题
	}

	@Override
	public void stateChanged(ChangeEvent e) {
		if (e.getSource() == jt) {
			int i = ((JTabbedPane)e.getSource()).getSelectedIndex();
			//System.out.println(i);	// 这里会输出当前标签页的序号0-4
			jb[index].setVisible(false);
			jb[i].setVisible(true);
			index = i;
		}
	}
	
}

 

posted @ 2018-01-12 18:01  半生戎马,共话桑麻、  阅读(159)  评论(0)    收藏  举报
levels of contents