JTabbedPane的使用
2013-03-01 16:18
351 查看
JTabbedPane的使用:
类层次结构图:java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.JTabbedPane
JTabbedPane构造函数:
JTabbedPane():建立一个空的JTabbedPane对象。
JTabbedPane(int tabPlacement):建立一个空的JTabbedPane对象,并指定摆放位置,如TOP,BOTTOM,LEFT,RIGHT.
JTabbedPane的事件处理模式: JTabbedPane以处理ChangeEvent事件为主。每当在JTabbedpane选换标签时,都会产生ChangeEvent事件。
因此要处理选换标签所对应的操作,必须实现ChangeListener这个interface.另外JTabbedPane上的每个标签都有索引值(index),一般若没有加以设置 ,索引置从左到右依次是0,1,2.....,依此类推,因此下例中,Picture的索引值为0,Label 2的索引值为1。一个标签都有所对应的操作。
例子: JTabbedPane2.java
import java.awt.*; import java.awt.event.*; import javax.swing.*; /*由于ChangeEvent是属于Swing的事件,而不是AWT的事件,因此import Swing的事件类来处理 *ChangeEvent事件。 */ import javax.swing.event.*; public class JTabbedPane2 implements ActionListener, ChangeListener { int index = 0; int newNumber = 1; JTabbedPane tabbedPane = null; public JTabbedPane2() { JFrame f = new JFrame("JTabbedPane2"); Container contentPane = f.getContentPane(); JLabel label1 = new JLabel(new ImageIcon(".\\icons\\flower.jpg")); JPanel panel1 = new JPanel(); panel1.add(label1); JLabel label2 = new JLabel("Label 2", JLabel.CENTER); label2.setBackground(Color.pink); label2.setOpaque(true); JPanel panel2 = new JPanel(); panel2.add(label2); JLabel label3 = new JLabel("Label 3", JLabel.CENTER); label3.setBackground(Color.yellow); label3.setOpaque(true); JPanel panel3 = new JPanel(); panel3.add(label3); tabbedPane = new JTabbedPane(); tabbedPane.setTabPlacement(JTabbedPane.TOP);// 设置标签置放位置。 /* * 由于ChangeEvent是属于Swing的事件,而不是AWT的事件,因此import Swing的事件类来处理 * ChangeEvent事件。 */ tabbedPane.addChangeListener(this); tabbedPane.addTab("Picture", null, panel1, "图案"); tabbedPane.addTab("Label 2", panel2); tabbedPane.addTab("Label 3", null, panel3, "label"); tabbedPane.setEnabledAt(2, false);// 设Label 3标签为Disable状态 JButton b = new JButton("新增标签"); b.addActionListener(this); contentPane.add(b, BorderLayout.SOUTH); contentPane.add(tabbedPane, BorderLayout.CENTER); f.pack(); f.show(); f.addWindowListener(new WindowAdapter() { public void WindowClosing(WindowEvent e) { System.exit(0); } }); } /* * 实现ChangeListener方法,目的在使若左边的标签有点选过,右边的标签才会显示Enable状态。getSelectedIndex()方法可返回 * 目前点选标签的index值 * ,getTabCount()方法可返回JTabbedPane上目前共有几个标签,而setEnabledAt()方法则是使某个标签 * 的状态为Enable或Disable(true为Enable,false为Disable). */ public void stateChanged(ChangeEvent e) { if (index != tabbedPane.getSelectedIndex()) { if (index < tabbedPane.getTabCount() - 1) tabbedPane.setEnabledAt(index + 1, true); } index = tabbedPane.getSelectedIndex(); } /* * 实现ActionListener接口,当用户按下"新增标签"按钮时,就会在tabbedPane上新增一个Disable状态的标签。 */ public void actionPerformed(ActionEvent e) { JPanel pane1 = new JPanel(); JLabel label4 = new JLabel("new label" + newNumber, JLabel.CENTER); label4.setOpaque(true); pane1.add(label4); tabbedPane.addTab("new " + newNumber, pane1); tabbedPane.setEnabledAt(newNumber + 2, false); newNumber++; tabbedPane.validate(); } public static void main(String[] args) { new JTabbedPane2(); } }
相关文章推荐
- JTabbedPane的使用
- (总结)Swing组件的使用---下拉式菜单(menu),弹出式菜单(JPopupMenu),选项卡窗体(JTabbedPane)
- Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例
- 使用JtabbedPane实现Sina网页中Tab风格
- JTabbedPane的使用
- Java选项卡(JTabbedPane)的使用
- JTabbedPane,JScroolPane,JScrolBa的使用
- JTabbedPane,JScroolPane,JScrolBa的使用
- JTabbedPane的使用
- JAVA界面设计大全----JTabbedPane,JScroolPane,JScrolBa的使用
- j2se可切换标签控件JTabbedPane的使用实例
- swing基本组件使用1.0.1(JScrollPane,JSplitPane,JTabbedPane)
- 任何人都可以重构---使用 Eclipse 自动重构特性的方法与原因 选择自 shanyou 的 Blog
- ADSI,使用ASP来完成NT管理
- 函数对象的使用
- 使用MFC开发ActiveX控件
- CListCtrl使用详解
- 变量的使用规则
- 如何在C++中使用unicode编码
- 使用WebClient自动填写并提交ASP.NET页面表单