import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class JDK6TabbedPaneExample {
private JFrame frame = new JFrame();
private JTabbedPane tabbedPane = new JTabbedPane();
private JButton addTabButton = new JButton("Add Tab");
private ImageIcon closeXIcon = new ImageIcon("C:/CloseX.gif");
private Dimension closeButtonSize;
private int tabCounter = 0;
public JDK6TabbedPaneExample() {
addTabButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
add();
}
});
closeButtonSize = new Dimension(closeXIcon.getIconWidth() + 2, closeXIcon.getIconHeight() + 2);
frame.add(tabbedPane, BorderLayout.CENTER);
frame.add(addTabButton, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setMinimumSize(new Dimension(300, 300));
frame.setVisible(true);
}
public void add() {
final JPanel content = new JPanel();
JPanel tab = new JPanel();
tab.setOpaque(false);
JLabel tabLabel = new JLabel("Tab " + (++tabCounter));
JButton tabCloseButton = new JButton(closeXIcon);
tabCloseButton.setPreferredSize(closeButtonSize);
tabCloseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int closeTabNumber = tabbedPane.indexOfComponent(content);
tabbedPane.removeTabAt(closeTabNumber);
}
});
tab.add(tabLabel, BorderLayout.WEST);
tab.add(tabCloseButton, BorderLayout.EAST);
tabbedPane.addTab(null, content);
tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, tab);
}
public static void main(String[] args) {
JDK6TabbedPaneExample main = new JDK6TabbedPaneExample();
}
}
分享到:
相关推荐
在"swing复杂控件使用"这个主题中,我们将深入探讨JTree、JMenu、JTable、JTabbedPane和JToolBar这五个核心组件。 1. **JTree**:JTree是Swing中的一个用于展示树形结构数据的组件。它可以用来显示文件系统目录、...
java swing jTabbedPane 自定义的U,包括(宽、高、点击放大、文本字体、背景颜色、选项卡间距等) 简单易懂带注释可直接运行
- `JTabbedPane` 创建带有标签的多页面视图。 - `JInternalFrame` 用于在`JFrame`内部创建可移动和可调整大小的子窗口。 - `Box` 提供了水平或垂直布局的容器。 4. **基本组件** - `JLabel` 显示文本或图像。 ...
JavaSwing界面设计所有控件及示例 JavaSwing是一种广泛使用的Java图形用户界面(GUI)工具包,用于设计和实现图形用户界面。该工具包提供了各种控件和容器,用于创建复杂的用户界面。 界面设计概述 界面设计是指...
Java Swing 是Java GUI(图形用户界面)库...通过熟练掌握这些Swing控件,开发者能够创建出功能丰富、用户友好的Java桌面应用程序。在实际开发中,可以根据需求灵活组合和定制这些控件,以满足各种界面设计和交互需求。
这个"Java-Swing-exercises.rar"压缩包显然包含了作者在大学期间编写的Swing控件练习,旨在帮助学习者熟悉并掌握Swing的各种控件。下面,我们将深入探讨Swing中的主要控件及其用途。 1. **JFrame**: JFrame是Swing...
此外,JTabbedPane支持动态添加和删除选项卡,这样可以实现更灵活的界面设计。 要创建一个简单的Java选项卡程序,首先你需要导入javax.swing.*包,这个包包含了JTabbedPane类和其他相关组件。然后,你可以创建...
- **容器控件**:这类控件可以包含其他控件,例如`JPanel`、`JTabbedPane`、`JScrollPane`等。 - **非容器控件**:这类控件不能包含其他控件,例如`JButton`、`JLabel`、`JTextField`等。 向容器控件中添加控件的...
`JTabbedPaneDemo`则展示了JTabbedPane控件,这个组件可以创建带有多个面板的标签页,每个面板可以有自己的控件和内容。 密码输入通常涉及到`JPasswordFieldDemo`,JPasswordField控件用于安全地输入密码,字符会被...
Swing的一个显著特点是其轻量级特性,因为它不依赖于操作系统提供的GUI控件,而是使用Java实现,这使得Swing应用在不同平台上有一致的用户体验。此外,Swing支持模态和非模态对话框,以及多种布局管理器,如...
AWT控件是基于原生操作系统平台的,而Swing控件则是完全由Java实现的,因此具有更好的可移植性。 Java Bean是一种符合特定规范的Java类,通常用于构建组件。这些类遵循一些约定,比如拥有默认构造函数、公开属性和...
Swing扩展组件是Java Swing库中的一个重要组成部分,它提供了丰富的用户界面元素,使得开发者能够创建出功能强大且具有吸引力的图形用户界面(GUI)。Swing是Java AWT(抽象窗口工具包)的一个替代品,提供了更多的...
- Swing 提供了丰富的组件库,如 `JTabbedPane`(选项卡面板)、`JSplitPane`(分割面板)、`JOptionPane`(对话框)等,满足各种界面需求。 10. **Swing 构建工具**: - NetBeans、IntelliJ IDEA 和 Eclipse 等...
- 动态调整:在用户操作时,如添加或删除标签,标签大小可以根据需要动态变化。 3. **编程实现**: - 对于Java的Swing,可以使用`JTabbedPane`的`setTabLayoutPolicy()`方法来更改标签的排列方式,如`JTabbedPane...
例如,在Java Swing中,JTabbedPane类实现了Tab的大部分功能,包括添加、移除标签页,以及切换事件的处理。开发者可以通过阅读源码,理解其内部工作机制,以便在需要时进行扩展和优化。 **5. 工具支持** 许多集成...
Swing组件库包括各种控件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)等,以及布局管理器,如FlowLayout、BorderLayout、GridLayout和CardLayout,这些...
JTabbedPane允许用户在不同的选项卡之间切换,并且可以添加自定义的关闭按钮来移除当前选项卡。通过监听用户的交互事件,如点击关闭按钮,我们可以动态地调整选项卡的数量。 其次,"文件复制功能"是许多应用程序的...
例如,使用JOptionPane进行提示对话框,使用JTabbedPane实现不同用户界面的切换,使用JTable展示学生列表和成绩信息。 三、事件监听与处理 Swing通过事件监听机制实现了用户交互。例如,当用户点击登录按钮时,会...
18. **JTabbedPane**: 创建带标签的页面,可以在不同标签之间切换。 19. **JInternalFrame**: 可以在 `JFrame` 内部创建可移动和可最小化的子窗口。 ### 布局管理 Swing 提供了多种布局管理器,如 FlowLayout、...
`addTab`方法用于向`JTabbedPane`中添加新的标签页,可以添加不同的组件作为页面内容。 综上所述,通过以上介绍我们可以了解到Java Swing中的一些重要组件和布局管理器的使用方法,这些知识对于开发复杂的GUI应用...