277 次浏览
JTabbedPane JTabbedPane 是一个可以扩展 JComponent 类的组件,它可以方便地访问多个面板。每个选项卡都与一个单一组件关联,当选择该选项卡时,该组件将显示。当选择选项卡时,JTabbedPane 可以生成 ChangeListener 接口。JTabbedPane 的重要方法包括 add()、addTab()、fireStateChanged()、createChangeListener()、setSelectedIndex()、getTabCount() 等。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class JTabbedPaneTest extends JFrame implements ActionListener { JTabbedPane tabbedPane; int ntabs = 0; public JTabbedPaneTest() { getContentPane().setLayout(new BorderLayout()); tabbedPane = new JTabbedPane(); ... 阅读更多
1K+ 次浏览
右键单击时,JPopupMenu 会出现在屏幕上的任何位置。JPopupMenu 弹出菜单是一个自由浮动的菜单,它与一个称为调用者的底层组件关联。大多数情况下,弹出菜单与特定组件链接以显示上下文相关的选项。为了创建一个弹出菜单,我们可以使用 JPopupMenu 类,我们可以像普通菜单一样将 JMenuItem 添加到弹出菜单。要显示弹出菜单,我们可以调用 show() 方法,通常弹出菜单是响应鼠标事件调用的。示例 import java.awt.event.*; import java.awt.*; import javax.swing.*; public class JPopupMenuTest extends JFrame { ... 阅读更多
2K+ 次浏览
JTextPane 是 JEditorPane 的扩展,它提供文字处理功能,如字体、文本样式、颜色等。如果我们需要进行大量文本处理,可以使用此类,而 JEditorPane 支持显示/编辑 HTML 和 RTF 内容,并且可以通过创建我们自己的 EditorKit 来扩展。JTextPane JTextPane 是 JEditorPane 的子类。JTextPane 用于带有嵌入图像和组件的样式化文档。JTextPane 是一个文本组件,可以用图形方式表示的属性进行标记,它可以使用 DefaultStyledDocument 作为默认模型。JTextPane 的重要方法包括 addStyle()、getCharacterAttributes()、getStyledDocument()、setDocument()、setEditorKit()、setStyledDocument() 等。示例 import java.awt.*; import ... 阅读更多
227 次浏览
处理 WindowEvent 的类需要实现此接口,并且可以使用 addWindowListener() 方法将此类的对象注册到组件。WindowListener 接口的方法 WindowListener 接口定义了 7 个方法来处理窗口事件 void windowActivated(WindowEvent we) − 窗口激活时调用。void windowDeactivated(WindowEvent we) − 窗口停用时调用。void windowOpened(WindowEvent we) − 窗口打开时调用。void windowClosed(WindowEvent we) − 窗口关闭时调用。void windowClosing(WindowEvent we) − 窗口关闭时调用。void windowIconified(WindowEvent we) − 窗口最小化时调用。void windowDeiconfied(WindowEvent we) − 窗口还原时调用。语法 public ... 阅读更多
35K+ 次浏览
布局管理器使我们能够通过确定容器内组件的大小和位置来控制在 GUI 表单中排列可视组件的方式。LayoutManager 的类型 Java 中有 6 个布局管理器 FlowLayout:它像页面上的文字一样排列容器中的组件。它从左到右、从上到下填充顶行。组件按照添加的顺序排列,即第一个组件出现在左上角,如果容器不够宽以显示所有组件,... 阅读更多
布局管理器用于自动确定已添加组件的位置和大小。在没有布局管理器的情况下,必须手动设置组件的位置和大小。setBounds() 方法在这种情况下用于设置位置和大小。要手动指定组件的位置和大小,框架的布局管理器可以为 null。setBounds() setBounds() 方法需要四个参数。前两个参数是组件左上角的 x 和 y 坐标,第三个参数是组件的宽度,第四个参数是 ... 阅读更多
4K+ 次浏览
EventListener 接口定义了特定事件的事件处理程序必须实现的方法,而 Event 适配器类提供了 EventListener 接口的默认实现。事件监听器 事件监听器是每个组件处理事件的支柱。特定 EventListener 的每个方法都将只有一个参数作为实例,该实例是 EventObject 类的子类。需要扩展 EventListener 接口,它将在 java.util 包中定义。一些 EventListener 接口是 ActionListener、KeyListener、MouseListener、FocusListener、ItemListener 等。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyListenerTest implements KeyListener, ActionListener { JFrame frame; JTextField tf; ... 阅读更多
9K+ 次浏览
Container Container 类可以描述为一个特殊的组件,它可以容纳组件的集合。有两种类型的 Swing 容器,它们是顶级容器和低级容器。顶级容器是重量级容器,例如 JFrame、JApplet、JWindow 和 JDialog。低级容器是轻量级容器,例如 JPanel。最常用的容器是 JFrame、JPanel 和 JWindow。Container 类的重要方法包括 add()、invalidate() 和 validate()。示例 import java.awt.*; import javax.swing.*; public class ContainerTest extends JFrame { // 顶级容器 JPanel panel; // 低级容器 JTextField field; JButton btn; public ContainerTest() { setTitle("Container Test"); ... 阅读更多
133 次浏览
CardLayout 的功能是按顺序排列组件,一次只显示一个组件,每个组件都被视为一张卡片。CardLayout 与其他布局管理器不同,其他布局管理器尝试一次显示容器中的所有组件,而 CardLayout 一次只显示一个组件。在 CardLayout 中,卡片通常放置在容器中,例如 JPanel。组件按照添加的顺序放入卡片队列。CardLayout 的重要方法有 first()、last()、next()、previous() 和 show()。示例 import java.awt.*; ... 阅读更多
GridBagLayout 是一个非常灵活的布局管理器,它允许我们使用约束来设置组件之间的相对位置。每个 GridBagLayout 使用一个动态的矩形单元格网格,每个组件占据一个或多个单元格,称为其显示区域。由 GridBagLayout 管理的每个组件都与一个 GridBagConstraints 实例关联,该实例指定组件在其显示区域内的布局方式。GridBagConstraints 我们可以通过设置一个或多个公共实例变量来自定义 GridBagConstraints 对象。这些变量指定组件的位置、大小、增长因子、锚点、内边距、填充和填充。gridx:指定组件最左侧单元格的 int 值…… 阅读更多