Java 中文官方教程 2022 版(十五)(1)

简介: Java 中文官方教程 2022 版(十五)

文本组件 API

原文:docs.oracle.com/javase/tutorial/uiswing/components/textapi.html

本节列出了文本组件共享的常用 API 部分。这些 API 大部分由JTextComponent类定义。文本组件特性讨论了如何使用部分 API。

JComponent 类描述了文本组件从JComponent继承的 API。有关特定文本组件相关的 API 信息,请参阅该组件的操作页面:文本字段、密码字段、格式化文本字段、文本区域或编辑器窗格和文本窗格。

有关文本 API 的完整详细信息,请参阅JTextComponent的 API 文档以及text package中各种类和接口的文档。

本节列出的 API 包括以下类别:

  • 设置属性
  • 选择操作
  • 在模型和视图之间转换位置
  • 文本编辑命令
  • 表示文档的类和接口
  • 处理文档
  • 操作插入符和选择高亮器
  • 读取和写入文本

设置属性

这些方法在JTextComponent类中定义。

方法 描述
void setEditable(boolean) boolean isEditable() 设置或指示用户是否可以编辑文本组件中的文本。
void setDragEnabled(boolean) boolean getDragEnabled() 设置或获取dragEnabled属性,必须为 true 才能在此组件上启用拖放处理。默认值为 false。有关更多详细信息,请参阅拖放和数据传输。
void setDisabledTextColor(Color) Color getDisabledTextColor() 设置或获取文本组件被禁用时用于显示文本的颜色。
void setMargin(Insets) Insets getMargin() 设置或获取文本与文本组件边框之间的边距。

操作选择

这些方法在JTextComponent类中定义。

方法 描述
String getSelectedText() 获取当前选定的文本。
void selectAll() void select(int, int) 选择所有文本或选择起始和结束范围内的文本。

| void setSelectionStart(int) void setSelectionEnd(int)

int getSelectionStart()

int getSelectionEnd() | 通过索引设置或获取当前选择的范围。 |

void setSelectedTextColor(Color) Color getSelectedTextColor() 设置或获取选定文本的颜色。
void setSelectionColor(Color) Color getSelectionColor() 设置或获取选定文本的背景颜色。

在模型和视图之间转换位置

这些方法在JTextComponent类中定义。

方法 描述
int viewToModel(Point) 将视图坐标系中的指定点转换为文本中的位置。
Rectangle modelToView(int) 将文本中指定位置转换为视图坐标系中的矩形。

文本编辑命令

类或方法 描述

| void cut() void copy()

void paste()

void replaceSelection(String)

(在JTextComponent中) | 使用系统剪贴板剪切、复制和粘贴文本,或分别用参数指定的字符串替换所选文本。 |

EditorKit 提供文本组件的视图工厂、文档、插入符号和操作,以及读取和写入特定格式的文档。
DefaultEditorKit EditorKit的具体子类,提供基本的文本编辑功能。
StyledEditorKit Default EditorKit的子类,为带样式文本提供额外的编辑功能。
字符串 xxxx操作 (在DefaultEditorKit中) 默认编辑器工具支持的所有操作的名称。请参见将文本操作与菜单和按钮关联。

| 哔哔操作 复制操作

剪切操作

默认键入操作

插入换行操作

插入内容操作

插入制表符操作

粘贴操作

(在DefaultEditorKit中) | 实现各种文本编辑命令的内部类。 |

| 对齐操作 加粗操作

字体族操作

字体大小操作

前景色操作

斜体操作

样式文本操作

下划线操作

(在StyledEditorKit中) | 实现各种编辑命令以处理带样式文本的内部类。 |

Action[] getActions() (在JTextComponent中) 获取此组件支持的操作。如果组件使用编辑器工具包,则此方法从编辑器工具包获取操作数组。
InputMap getInputMap() (在JComponent中) 获取将键绑定到操作的输入映射。参见将文本操作与键绑定。
void put(KeyStroke, Object) (在InputMap中) 将指定的键绑定到指定的操作。通常通过名称指定操作,对于标准编辑操作,使用字符串常量表示,如DefaultEditorKit.backwardAction

代表文档的类和接口

接口或类 描述
文档 定义所有文档必须实现的 API 的接口。
抽象文档 Document接口的抽象超类实现。这是 Swing 文本包提供的所有文档的超类。
纯文本文档 实现Document接口的类。这是纯文本组件(文本字段、密码字段和文本区域)的默认文档。此外,在加载纯文本或未知格式的文本时,编辑器窗格和文本窗格使用此类。
样式文档 Document子接口。定义支持带样式文本的文档必须实现的 API。JTextPane要求其文档必须是这种类型。
默认样式文档 实现StyledDocument接口的类。JTextPane的默认文档。

处理文档

类或方法 描述
DocumentFilter 所有文档过滤器的超类。您可以使用文档过滤器来更改从文档中插入或移除的内容,而无需自己实现文档。参见实现文档过滤器。
void setDocumentFilter(DocumentFilter) (在AbstractDocument中) 设置文档过滤器。

| void setDocument(Document) Document getDocument() |

(在JTextComponent中) | 设置或获取文本组件的文档。|

Document createDefaultModel() (在JTextField中) 创建一个默认的 PlainDocument 模型。覆盖此方法以创建自定义文档,而不是默认的PlainDocument

| void addDocumentListener(DocumentListener) void removeDocumentListener(DocumentListener) |

(在Document中) | 添加或移除文档监听器。参见监听文档变化。|

| void addUndoableEditListener(UndoableEditListener) void removeUndoableEditListener(UndoableEditlistener) |

(在Document中) | 添加或移除可撤销编辑监听器。可撤销编辑监听器用于实现撤销和重做。|

| int getLength() Position getStartPosition() |

Position getEndPosition()

String getText(int, int) |

(在Document中) | 返回有关文档的各种描述信息的Document方法。|

| Object getProperty(Object) void putProperty(Object, Object)

(在Document中)

void setDocumentProperties(Dictionary)

Dictionary getDocumentProperties()

(在AbstractDocument中) | 一个Document维护一组属性,您可以使用这些方法来操作。 |

操纵插入符和选择高亮器

这些方法在JTextComponent类中定义。

接口、类或方法 描述
插入符 定义表示文档内插入点的对象的 API 的接口。
DefaultCaret 所有文本组件使用的默认插入符。
void setCaret(Caret) Caret getCaret() 设置或获取文本组件使用的插入符对象。
void setCaretColor(Color) Color getCaretColor() 设置或获取插入符的颜色。

| void setCaretPosition(int) void moveCaretPosition(int)

int getCaretPosition() | 设置或获取文档内插入符的当前位置。 |

void addCaretListener(CaretListener) void removeCaretListener(CaretListener) 向文本组件添加或移除插入符监听器。
NavigationFilter 所有导航过滤器的超类。导航过滤器允许您修改即将发生在文本组件中的插入符更改。
void setNavigationFilter(NavigationFilter) 将导航过滤器附加到文本组件。
Highlighter 定义用于突出显示当前选择的对象的 API 的接口。
DefaultHighlighter 所有文本组件使用的默认高亮器。
void setHighlighter(Highlighter) Highlighter getHighlighter() 设置或获取文本组件使用的高亮器。

读取和写入文本

方法 描述

| void read(Reader, Object) void write(Writer)

(在JTextComponent中) | 读取或写入文本。 |

| void read(Reader, Document, int) void read(InputStream, Document, int)

(在EditorKit中) | 从流中读取文本到文档中。 |

| void write(Writer, Document, int, int) void write(OutputStream, Document, int, int)

(在EditorKit中) | 将文本从文档写入流中。 |

如何使用各种组件

原文:docs.oracle.com/javase/tutorial/uiswing/components/componentlist.html

每个页面描述了如何使用特定类型的 Swing 组件。

  • 如何制作小程序
  • 如何使用按钮、复选框和单选按钮
  • 如何使用颜色选择器
  • 如何使用组合框
  • 如何制作对话框
  • 如何使用编辑窗格和文本窗格
  • 如何使用文件选择器
  • 如何使用格式化文本字段
  • 如何制作框架(主窗口)
  • 如何使用内部框架
  • 如何使用标签
  • 如何使用分层窗格
  • 如何使用列表
  • 如何使用菜单
  • 如何使用面板
  • 如何使用密码字段
  • 如何使用进度条
  • 如何使用根窗格
  • 如何使用滚动窗格
  • 如何使用分隔符
  • 如何使用滑块
  • 如何使用微调器
  • 如何使用分割窗格
  • 如何使用选项卡窗格
  • 如何使用表格
  • 如何使用文本区域
  • 如何使用文本字段
  • 如何使用工具栏
  • 如何使用工具提示
  • 如何使用树

如何制作 Applets

原文:docs.oracle.com/javase/tutorial/uiswing/components/applet.html

本节涵盖了JApplet — 一个使 applets 能够使用 Swing 组件的类。JAppletjava.applet.Applet的子类,该类在 Java Applets 教程中有介绍。如果你以前从未编写过常规 applet,我们建议你在继续本节之前阅读该教程。该教程中提供的信息也适用于 Swing applets,但本节会解释一些例外情况。

任何包含 Swing 组件的 applet 必须使用JApplet的子类来实现。这里是一个帮助 Java 走红的 applet 的 Swing 版本 — 一个动画 applet(在其最著名的配置中)展示了我们的吉祥物 Duke 在做空翻:

//https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TumbleItemProject/TumbleItem.jar’, codebase: ‘https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TumbleItemProject’, code:‘components.TumbleItem’, width:‘600’, height:‘95’ }; var parameters = { permissions:‘sandbox’, nimgs:‘17’, offset:‘-57’, img: ‘images/tumble’, maxwidth:‘120’ }; deployJava.runApplet(attributes, parameters, ‘1.7’); //]]>


注意: 如果你看不到 applet 运行,你需要安装至少Java SE Development Kit (JDK) 7版本。


你可以在TumbleItem.java中找到这个 applet 的主要源代码。

本节讨论以下主题:

  • JApplet 提供的功能
  • Applets 中的线程
  • 在 Swing Applet 中使用图像
  • 在 HTML 页面中嵌入 Applet
  • JApplet API
  • Applet 示例

JApplet 提供的功能

因为JApplet是一个顶层的 Swing 容器,每个 Swing applet 都有一个根窗格。根窗格存在的最明显效果是支持添加菜单栏和需要使用内容窗格。

如使用顶层容器中所述,每个顶层容器(如JApplet)都有一个内容窗格。内容窗格使得 Swing applets 与常规 applets 有以下不同之处:

  • 你将组件添加到 Swing applet 的内容窗格,而不是直接添加到 applet。向内容窗格添加组件展示了如何操作。
  • 你在 Swing applet 的内容窗格上设置布局管理器,而不是直接在 applet 上设置。
  • Swing applet 的内容窗格的默认布局管理器是BorderLayout。这与Applet的默认布局管理器FlowLayout不同。
  • 您不应该直接在JApplet对象中放置绘图代码。请参考执行自定义绘图了解如何在小程序中执行自定义绘图的示例。

小程序中的线程

Swing 组件应该在事件分派线程上创建、查询和操作,但浏览器不会从该线程调用小程序的“里程碑”方法。因此,“里程碑”方法——initstartstopdestroy应该使用SwingUtilities方法invokeAndWait(或者如果适用,invokeLater),以便引用 Swing 组件的代码在事件分派线程上执行。有关这些方法和事件分派线程的更多信息,请参考 Swing 中的并发。

这里是一个init方法的示例:

public void init() {
    //Execute a job on the event-dispatching thread:
    //creating this applet's GUI.
    try {
        javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                createGUI();
            }
        });
    } catch (Exception e) {
        System.err.println("createGUI didn't successfully complete");
    }
}
private void createGUI() {
    JLabel label = new JLabel(
                       "You are successfully running a Swing applet!");
    label.setHorizontalAlignment(JLabel.CENTER);
    label.setBorder(BorderFactory.createMatteBorder(1,1,1,1,Color.black));
    getContentPane().add(label, BorderLayout.CENTER);
}

invokeLater方法不适用于这个实现,因为它允许init在初始化完成之前返回,这可能会导致难以调试的小程序问题。

TumbleItem中的init方法更复杂,如下面的代码所示。与第一个示例一样,这个init方法的实现使用SwingUtilities.invokeAndWait在事件分派线程上执行 GUI 创建代码。这个init方法设置了一个 Swing 定时器来触发动画更新的动作事件。此外,init使用javax.swing.SwingWorker创建一个后台任务,加载动画图像文件,让小程序立即呈现 GUI,而不必等待所有资源加载完毕。

private void createGUI() {
    ...
    animator = new Animator();
    animator.setOpaque(true);
    animator.setBackground(Color.white);
    setContentPane(animator);
    ...
}
public void init() {
    loadAppletParameters();
    //Execute a job on the event-dispatching thread:
    //creating this applet's GUI.
    try {
        javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                createGUI();
            }
        });
    } catch (Exception e) { 
        System.err.println("createGUI didn't successfully complete");
    }
    //Set up the timer that will perform the animation.
    timer = new javax.swing.Timer(speed, this);
    timer.setInitialDelay(pause);
    timer.setCoalesce(false);
    timer.start(); //Start the animation.
    //Background task for loading images.
    SwingWorker worker = (new SwingWorker<ImageIcon[], Object>() {
            public ImageIcon[] doInBackground() {
                final ImageIcon[] innerImgs = new ImageIcon[nimgs];
            *...//Load all the images...*
            return imgs;
        }
        public void done() {
            //Remove the "Loading images" label.
            animator.removeAll();
            loopslot = -1;
            try {
                imgs = get();
            } *...//Handle possible exceptions*
        }
    }).execute();
}

您可以在TumbleItem.java中找到小程序的源代码。要找到小程序所需的所有文件,请参阅示例索引。

在 Swing 小程序中使用图像

Applet类提供了getImage方法来将图片加载到小程序中。getImage方法创建并返回一个代表加载图片的Image对象。因为 Swing 组件使用Icon而不是Image来引用图片,所以 Swing 小程序往往不使用getImage。相反,Swing 小程序创建ImageIcon的实例,从图像文件加载图标。ImageIcon具有一个节省代码的好处:它自动处理图像跟踪。更多信息请参考如何使用图标。

Duke 做空翻的动画需要 17 张不同的图片。该小程序使用每张图片一个ImageIcon,并在其init方法中加载这些图片。由于图片加载可能需要很长时间,这些图标是在一个SwingWorker对象实现的单独线程中加载的。以下是代码:

public void init() {
    ...
    imgs = new ImageIcon[nimgs];
    (new SwingWorker<ImageIcon[], Object>() {
        public ImageIcon[] doInBackground() {
            //Images are numbered 1 to nimgs,
            //but fill array from 0 to nimgs-1.
            for (int i = 0; i < nimgs; i++) {
                imgs[i] = loadImage(i+1);
            }
            return imgs;
        }
        ...
    }).execute();
}
...
protected ImageIcon loadImage(int imageNum) {
    String path = dir + "/T" + imageNum + ".gif";
    int MAX_IMAGE_SIZE = 2400;  //Change this to the size of
                                 //your biggest image, in bytes.
    int count = 0;
    BufferedInputStream imgStream = new BufferedInputStream(
       this.getClass().getResourceAsStream(path));
    if (imgStream != null) {
        byte buf[] = new byte[MAX_IMAGE_SIZE];
        try {
            count = imgStream.read(buf);
            imgStream.close();
        } catch (java.io.IOException ioe) {
            System.err.println("Couldn't read stream from file: " + path);
            return null;
        }
        if (count <= 0) {
            System.err.println("Empty file: " + path);
            return null;
        }
        return new ImageIcon(Toolkit.getDefaultToolkit().createImage(buf));
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}

loadImage 方法为指定的动画帧加载图像。它使用 getResourceAsStream 方法而不是通常的 getResource 方法来获取图像。生成的代码不太美观,但是对于从 JAR 文件加载图像到使用 Java Plug-in™ 软件执行的小程序来说,getResourceAsStreamgetResource 更有效。有关更多详细信息,请参见将图像加载到小程序中。

在 HTML 页面中嵌入小程序

您可以使用 applet 标签部署一个简单的小程序。或者,您可以使用部署工具包。以下是翻筋斗的杜克小程序的代码:

<script src="https://www.java.com/js/deployJava.js" type="text/javascript">
</script><script type="text/javascript">
//<![CDATA[
    var attributes = { archive: 'https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TumbleItemProject/TumbleItem.jar',
                       codebase: 'https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TumbleItemProject',
                       code:'components.TumbleItem', width:'600', height:'95' };
    var parameters = { permissions:'sandbox', nimgs:'17', offset:'-57',
                       img: 'images/tumble', maxwidth:'120' };
    deployJava.runApplet(attributes, parameters, '1.7');
//]]>
</script><noscript>A browser with Javascript enabled is required for this page to operate properly.</noscript>

有关更多信息,请参见部署小程序中的 Java 小程序课程。

小程序 JApplet API

下表列出了 JApplet 添加到小程序 API 中的有趣方法。它们让您访问根窗格提供的功能。您可能使用的其他方法由 ComponentApplet 类定义。请参见组件方法以获取常用的 Component 方法列表,并参见 Java 小程序以获取有关使用 Applet 方法的帮助。

方法 目的
void setContentPane(Container) Container getContentPane() 设置或获取小程序的内容窗格。内容窗格包含小程序的可见 GUI 组件,应该是不透明的。
void setRootPane(JRootPane) JRootPane getRootPane() 创建、设置或获取小程序的根窗格。根窗格管理小程序的内部,包括内容窗格、玻璃窗格等。
void setJMenuBar(JMenuBar) JMenuBar getJMenuBar() 设置或获取小程序的菜单栏以管理小程序的一组菜单。
void setGlassPane(Component) Component getGlassPane() 设置或获取小程序的玻璃窗格。您可以使用玻璃窗格拦截鼠标事件。
void setLayeredPane(JLayeredPane) JLayeredPane getLayeredPane() 设置或获取 applet 的分层窗格。您可以使用 applet 的分层窗格将组件放在其他组件的前面或后面。

Applet 示例

这个表格展示了 Swing applet 的示例以及这些示例在哪里描述。

示例 描述位置 备注
TumbleItem 本页 一个动画 applet

如何使用按钮、复选框和单选按钮

原文:docs.oracle.com/javase/tutorial/uiswing/components/button.html

要创建一个按钮,你可以实例化从AbstractButton类继承的许多类之一。下表显示了你可能想要使用的 Swing 定义的AbstractButton子类:

摘要 描述位置
JButton 一个常见的按钮。 如何使用通用按钮 API 和 如何使用 JButton 功能
JCheckBox 一个复选框按钮。 如何使用复选框
JRadioButton 一组单选按钮中的一个。 如何使用单选按钮
JMenuItem 菜单中的一个项目。 如何使用菜单
JCheckBoxMenuItem 具有复选框的菜单项。 如何使用菜单 和 如何使用复选框
JRadioButtonMenuItem 具有单选按钮的菜单项。 如何使用菜单 和 如何使用单选按钮
JToggleButton 实现JCheckBoxJRadioButton继承的切换功能。可以实例化或子类化以创建两状态按钮。 在一些示例中使用

注意: 如果你想将一组按钮收集到一行或一列中,那么你应该查看工具栏。


首先,本节解释了AbstractButton定义的基本按钮 API,因此所有 Swing 按钮都具有共同的特性。接下来,它描述了JButton添加到AbstractButton的少量 API。之后,本节将向您展示如何使用专门的 API 来实现复选框和单选按钮。

如何使用通用按钮 API

这里是一个显示三个按钮的应用程序的图片:



试试这个:

  1. 点击“启动”按钮以使用Java™ Web Start运行按钮演示(下载 JDK 7 或更高版本)。或者,要自行编译和运行示例,请参考示例索引。
  2. 点击左侧按钮。
    它禁用了中间按钮(以及自身,因为它不再有用),并启用了右侧按钮。
  3. 点击右侧按钮。
    它启用了中间按钮和左侧按钮,并禁用了自身。

正如ButtonDemo示例所示,Swing 按钮可以同时显示文本和图像。在ButtonDemo中,每个按钮的文本相对于其图像有不同的位置。每个按钮文本中的下划线字母显示了助记符 — 每个按钮的键盘替代键。在大多数外观中,用户可以通过按下 Alt 键和助记符来点击按钮。例如,Alt-M 将点击 ButtonDemo 中的 Middle 按钮。

当按钮被禁用时,外观会自动生成按钮的禁用外观。但是,您可以提供一个图像来替换正常图像。例如,您可以提供左侧和右侧按钮使用的图像的灰色版本。

如何实现事件处理取决于您使用的按钮类型以及如何使用它。通常,您会实现一个 action listener,每当用户点击按钮时都会通知它。对于复选框,通常会使用一个 item listener,当复选框被选中或取消选中时会通知它。

下面是ButtonDemo.java中创建上一个示例中按钮并响应按钮点击的代码。粗体代码是如果按钮没有图像时将保留的代码。

*//In initialization code:*
    ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
    ImageIcon middleButtonIcon = createImageIcon("images/middle.gif");
    ImageIcon rightButtonIcon = createImageIcon("images/left.gif");
    b1 = new JButton("Disable middle button", leftButtonIcon);
    b1.setVerticalTextPosition(AbstractButton.CENTER);
    b1.setHorizontalTextPosition(AbstractButton.LEADING); //aka LEFT, for left-to-right locales
    b1.setMnemonic(KeyEvent.VK_D);
    b1.setActionCommand("disable");
    b2 = new JButton("Middle button", middleButtonIcon);
    b2.setVerticalTextPosition(AbstractButton.BOTTOM);
    b2.setHorizontalTextPosition(AbstractButton.CENTER);
    b2.setMnemonic(KeyEvent.VK_M);
    b3 = new JButton("Enable middle button", rightButtonIcon);
    //Use the default text position of CENTER, TRAILING (RIGHT).
    b3.setMnemonic(KeyEvent.VK_E);
    b3.setActionCommand("enable");
    b3.setEnabled(false);
    //Listen for actions on buttons 1 and 3.
    b1.addActionListener(this);
    b3.addActionListener(this);
    b1.setToolTipText("Click this button to disable "
                      + "the middle button.");
    b2.setToolTipText("This middle button does nothing "
                      + "when you click it.");
    b3.setToolTipText("Click this button to enable the "
                      + "middle button.");
    ...
}
public void actionPerformed(ActionEvent e) {
    if ("disable".equals(e.getActionCommand())) {
        b2.setEnabled(false);
        b1.setEnabled(false);
        b3.setEnabled(true);
    } else {
        b2.setEnabled(true);
        b1.setEnabled(true);
        b3.setEnabled(false);
    }
} 
protected static ImageIcon createImageIcon(String path) {
    java.net.URL imgURL = ButtonDemo.class.getResource(path);
    *...//error handling omitted for clarity...*
    return new ImageIcon(imgURL);
}

Java 中文官方教程 2022 版(十五)(2)https://developer.aliyun.com/article/1486398

相关文章
|
9天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)
【4月更文挑战第21天】本文介绍了Selenium中处理特殊测试场景的方法,如鼠标悬停。Selenium的Actions类提供了鼠标悬停功能,用于模拟用户在网页元素上的悬停行为。文中通过实例展示了如何使用Actions悬停并展开下拉菜单,以及在搜索时选择自动补全的字段。代码示例包括了打开百度首页,悬停在“更多”元素上显示下拉菜单并点击“音乐”,以及在搜索框输入关键词并自动补全的过程。
33 0
|
1天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
9 0
|
2天前
|
Java 测试技术 项目管理
Java基础教程(22)-构建工具Maven的基本使用
【4月更文挑战第22天】Maven是Java项目管理及构建工具,简化构建、测试、打包和部署等任务。遵循约定优于配置原则,核心是`pom.xml`配置文件,用于管理依赖和项目信息。安装涉及下载、解压、配置环境变量。在IDEA中使用Maven创建项目,通过`pom.xml`添加依赖和管理版本。常用命令包括`clean`、`compile`、`test`、`package`、`install`和`deploy`。IDEA支持直接执行这些命令。
|
2天前
|
NoSQL Java 关系型数据库
Java基础教程(21)-Java连接MongoDB
【4月更文挑战第21天】MongoDB是开源的NoSQL数据库,强调高性能和灵活性。Java应用通过MongoDB Java驱动与之交互,涉及MongoClient、MongoDatabase、MongoCollection和Document等组件。连接MongoDB的步骤包括:配置连接字符串、创建MongoClient、选择数据库和集合。伪代码示例展示了如何建立连接、插入和查询数据。
|
3天前
|
存储 前端开发 测试技术
《手把手教你》系列技巧篇(三十五)-java+ selenium自动化测试-单选和多选按钮操作-下篇(详解教程)
【4月更文挑战第27天】本文介绍了使用Java+Selenium进行Web自动化测试时,如何遍历和操作多选按钮的方法。文章分为两个部分,首先是一个本地HTML页面的示例,展示了多选按钮的HTML代码和页面效果,并详细解释了遍历多选按钮的思路:找到所有多选按钮的共同点,通过定位这些元素并放入list容器中,然后使用for循环遍历并操作。 第二部分介绍了在JQueryUI网站上的实战,给出了被测网址,展示了代码设计,同样使用了findElements()方法获取所有多选按钮并存储到list中,然后遍历并进行点击操作。最后,文章对整个过程进行了小结,并推荐了作者的其他自动化测试教程资源。
11 0
|
3天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
3天前
|
设计模式 算法 Java
Java基础教程(19)-设计模式简述
【4月更文挑战第19天】设计模式是软件设计中反复使用的代码设计经验,旨在提升代码的可重用性、可扩展性和可维护性。23种模式分为创建型、结构型和行为型三类。创建型模式如工厂方法、抽象工厂、建造者、原型和单例,关注对象创建与使用的分离。结构型模式涉及对象组合,如适配器、装饰器、外观等,增强结构灵活性。行为型模式专注于对象间职责分配和算法合作,包括责任链、命令、观察者等。设计模式提供标准化解决方案,促进代码交流和复用。
|
4天前
|
前端开发 测试技术 Python
《手把手教你》系列技巧篇(三十三)-java+ selenium自动化测试-单选和多选按钮操作-上篇(详解教程)
【4月更文挑战第25天】本文介绍了自动化测试中如何处理单选和多选按钮的操作,包括它们的定义、HTML代码示例以及如何判断和操作这些元素。文章通过一个简单的HTML页面展示了单选和多选框的示例,并提供了Java+Selenium实现的代码示例,演示了如何检查单选框是否选中以及如何进行全选操作。
11 0
|
5天前
|
网络协议 Java 网络架构
Java基础教程(18)-Java中的网络编程
【4月更文挑战第18天】Java网络编程简化了底层协议处理,利用Java标准库接口进行TCP/IP通信。TCP协议提供可靠传输,常用于HTTP、SMTP等协议;UDP协议则更高效但不保证可靠性。在TCP编程中,ServerSocket用于监听客户端连接,Socket实现双进程间通信。UDP编程中,DatagramSocket处理无连接的数据报文。HTTP编程可以通过HttpURLConnection发送请求并接收响应。
|
6天前
|
前端开发 Java 测试技术
《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
【4月更文挑战第24天】本文介绍了在自动化测试中处理HTML下拉选择(select)的方法。使用Selenium的Select类,可以通过index、value或visible text三种方式选择选项,并提供了相应的取消选择的方法。此外,文章还提供了一个示例HTML页面(select.html)和相关代码实战,演示了如何使用Selenium进行选择和取消选择操作。最后,文章提到了现代网页中类似下拉框的新设计,如12306网站的出发地选择,并给出了相应的代码示例,展示了如何定位并选择特定选项。
16 0