隐藏面板使用
package Assis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TabbedPaneDemo extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private ImageIcon m_tabimage;
private ImageIcon m_tab1;
private ImageIcon m_tab2;
private ImageIcon m_tab3;
private JTabbedPane m_tabbedPane;
private JButton m_topButton;
private JButton m_bottomButton;
private JButton m_leftButton;
private JButton m_rightButton;
private JButton m_addButton;
private JButton m_removeButton;
public TabbedPaneDemo() {
// 创建选项卡的图标
m_tabimage = new ImageIcon("tabimage.gif");
// 创建三个图标
m_tab1 = new ImageIcon("1.gif");
m_tab2 = new ImageIcon("2.gif");
m_tab3 = new ImageIcon("3.gif");
// ===========================
// 下面是功能按钮面板的创建过程
// ===========================
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 6));
m_topButton = new JButton("顶部");
m_bottomButton = new JButton("底部");
m_leftButton = new JButton("左边");
m_rightButton = new JButton("右边");
m_addButton = new JButton("添加选项卡");
m_removeButton = new JButton("删除选项卡");
// 添加事件监听器
m_topButton.addActionListener(this);
m_bottomButton.addActionListener(this);
m_leftButton.addActionListener(this);
m_rightButton.addActionListener(this);
m_addButton.addActionListener(this);
m_removeButton.addActionListener(this);
// 把四个功能按钮加入功能按钮面板中
buttonPanel.add(m_topButton);
buttonPanel.add(m_bottomButton);
buttonPanel.add(m_leftButton);
buttonPanel.add(m_rightButton);
buttonPanel.add(m_addButton);
buttonPanel.add(m_removeButton);
// 把选项卡窗格容器和功能按钮面板加入到内容窗格容器中
m_tabbedPane = new JTabbedPane(SwingConstants.TOP);
getContentPane().add("South", buttonPanel);
getContentPane().add("Center", m_tabbedPane);
// 创建三个选项卡
createTab();
createTab();
createTab();
// 设置显示第一个选项卡
m_tabbedPane.setSelectedIndex(0);
}
// 创建选项卡
public void createTab() {
JLabel label = null;
switch (m_tabbedPane.getTabCount() % 3) {
case 0:
label = new JLabel("Tab #" + m_tabbedPane.getTabCount(), m_tab1,
SwingConstants.CENTER);
break;
case 1:
label = new JLabel("Tab #" + m_tabbedPane.getTabCount(), m_tab2,
SwingConstants.CENTER);
break;
case 2:
label = new JLabel("Tab #" + m_tabbedPane.getTabCount(), m_tab3,
SwingConstants.CENTER);
break;
}
label.setVerticalTextPosition(SwingConstants.BOTTOM);
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setOpaque(true);
label.setBackground(Color.white);
// 把新创建的选项卡添加到选项卡容器中
m_tabbedPane.addTab("Tab #" + m_tabbedPane.getTabCount(), m_tabimage,
label);
}
// 删除选项卡
public void deleteTab() {
// 删除最后一个选项卡
if (m_tabbedPane.getTabCount() > 0)
m_tabbedPane.removeTabAt(m_tabbedPane.getTabCount() - 1);
}
// 处理按钮事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == m_topButton)
m_tabbedPane.setTabPlacement(SwingConstants.TOP);
else if (e.getSource() == m_bottomButton)
m_tabbedPane.setTabPlacement(SwingConstants.BOTTOM);
else if (e.getSource() == m_leftButton)
m_tabbedPane.setTabPlacement(SwingConstants.LEFT);
else if (e.getSource() == m_rightButton)
m_tabbedPane.setTabPlacement(SwingConstants.RIGHT);
else if (e.getSource() == m_addButton)
createTab();
else if (e.getSource() == m_removeButton)
deleteTab();
// 重新绘制选项卡容器
m_tabbedPane.revalidate();
m_tabbedPane.repaint();
}
// 程序的入口方法
public static void main(String[] args) {
TabbedPaneDemo frame = new TabbedPaneDemo();
// 设置框架窗体的事件监听(关闭窗体事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 显示框架窗体
frame.pack();
frame.setVisible(true);
}
}
出处 : http://lvdong5830.iteye.com/blog/574695
相关推荐
在这个例子中,我们将深入探讨`JTabbedPane`的使用,以及如何在Eclipse环境中运行这个示例。 首先,`JTabbedPane`是`javax.swing`包中的一个类,它允许用户通过点击不同的选项卡来切换不同的面板或内容。这对于将...
下面是一个创建 `JTabbedPane` 并设置选项卡位置在顶部的例子: ```java JFrame jframe = new JFrame("TEST"); Container c = jframe.getContentPane(); JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP); ...
首先,Swing 提供了一系列的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu)、对话框(JOptionPane)等,这些都是构建用户界面的基本元素。在这些例子中...
在Swing组件中,`JTabbedPane`是一个非常实用的工具,它允许开发者在一个窗口内组织多个面板,每个面板可以看作一个独立的功能区域,用户可以通过点击不同的标签在这些面板之间切换。`TabbedPane`使得应用的界面更加...
JTabbedPane是Swing提供的一种容器,它允许我们在一个窗口中创建多个可切换的面板,每个面板就像是一个单独的“标签”或者“选项卡”。我们可以利用它的API来添加、删除和切换面板,并且可以设置每个标签的文本、...
多标签页界面在很多应用程序中非常常见,如文档编辑器、设置面板等,它允许用户在不同的功能区域之间轻松切换。 首先,要创建一个TabbedPane,我们可以使用`javax.swing.JTabbedPane` 类。这是一个容器组件,可以...
4. **JTabbedPaneDemo.java**:`JTabbedPane`组件允许在多个面板之间切换,每个面板代表一个“标签”或“选项卡”。此示例可能包含如何添加、删除和管理这些选项卡,以及如何设置自定义图标和标题。 5. **...
5. **Swing组件**:除了基本组件外,Swing还提供了一些增强型组件,如JTable用于显示表格数据,JTree用于展示树形结构,以及JTabbedPane用于创建多面板界面等。 6. ** Swing的外观(LookAndFeel)**:Java Swing...
JTabbedPane组件允许在单一窗口中组织多个面板,用户可以通过标签进行切换,提供了更高效的界面组织方式。 10. SwingWorkers 由于Swing组件是线程安全的,因此所有UI更新必须在事件调度线程(Event Dispatch ...
这些源代码实例涵盖了Swing中的各种组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、菜单(JMenu和JMenuItem)、滚动面板(JScrollPane)以及对话框(JOptionPane)等。...
另一个例子`jTabbedPane1.add()`则用于添加新的面板,其中组件和标题都是必需的。`jTabbedPane1.setSelectedIndex()`则用于设置当前显示的选项卡索引。 接着,我们讨论如何判断字符串是否能转换为整数。这个功能...
`JTabbedPaneDemo`则展示了JTabbedPane控件,这个组件可以创建带有多个面板的标签页,每个面板可以有自己的控件和内容。 密码输入通常涉及到`JPasswordFieldDemo`,JPasswordField控件用于安全地输入密码,字符会被...
Swing 提供了一整套的组件,包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格( JScrollPane)、菜单(JMenu)和对话框(JOptionPane)等。这些组件不仅在外观上可定制,而且...
大厦的中间层由一些复杂的组件和布局管理器构成,如JTable(表格)、JTree(树形视图)、JTabbedPane(选项卡面板)和JScrollPane(滚动面板)。这些组件使得开发者可以创建数据密集型的用户界面,如数据库查看或...
Swing还提供了一些高级组件,如JTable(表格)、JTree(树形结构)和JTabbedPane(选项卡面板),这些可以帮助创建更复杂的用户界面。 总之,这个Java Swing界面的压缩包是一个很好的学习资源,它不仅涵盖了基本的...
首先,Swing提供了大量的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu)、对话框(JOptionPane)等。这些组件使得开发者能够创建功能丰富的图形用户...
在Swing中,基本的组件包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu和JMenuItem)等。这些组件可以通过布局管理器(如FlowLayout、...
`javax.swing.JTabbedPane`是Java Swing提供的一种组件,它允许在多个面板之间切换,每个面板代表一个`Tab`。以下是一个简单的`TabbedPane`创建实例: ```java import javax.swing.JFrame; import javax.swing....
8. **Swing 小组件**:Swing 还包含了一些特殊的小组件,如 JTabbedPane(选项卡面板)、JSplitPane(分割窗格)和 JToolBar(工具栏)。这些源代码将展示如何利用它们来增强用户界面的功能。 9. **国际化支持**:...
这个例子展示了如何创建一个简单的Swing应用,包含一个标题为"Hello, Swing"的窗口,并在其中显示一个"Hello, World!"的标签。通过组合使用不同类型的组件、容器和布局管理器,开发者可以构建出功能丰富、用户友好的...