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

相关文章
|
7月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
360 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
3月前
|
Oracle Java 关系型数据库
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
305 2
|
8月前
|
消息中间件 Java 数据库
自研Java框架 Sunrays-Framework使用教程「博客之星」
### Sunrays-Framework:助力高效开发的Java微服务框架 **Sunrays-Framework** 是一款基于 Spring Boot 构建的高效微服务开发框架,深度融合了 Spring Cloud 生态中的核心技术组件。它旨在简化数据访问、缓存管理、消息队列、文件存储等常见开发任务,帮助开发者快速构建高质量的企业级应用。 #### 核心功能 - **MyBatis-Plus**:简化数据访问层开发,提供强大的 CRUD 操作和分页功能。 - **Redis**:实现高性能缓存和分布式锁,提升系统响应速度。 - **RabbitMQ**:可靠的消息队列支持,适用于异步
自研Java框架 Sunrays-Framework使用教程「博客之星」
|
9月前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
8405 5
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
8月前
|
Java 数据库连接 数据处理
探究Java异常处理【保姆级教程】
Java 异常处理是确保程序稳健运行的关键机制。它通过捕获和处理运行时错误,避免程序崩溃。Java 的异常体系以 `Throwable` 为基础,分为 `Error` 和 `Exception`。前者表示严重错误,后者可细分为受检和非受检异常。常见的异常处理方式包括 `try-catch-finally`、`throws` 和 `throw` 关键字。此外,还可以自定义异常类以满足特定需求。最佳实践包括捕获具体异常、合理使用 `finally` 块和谨慎抛出异常。掌握这些技巧能显著提升程序的健壮性和可靠性。
133 4
|
8月前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
145 1
|
9月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
556 26
|
8月前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
415 0
|
9月前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
9月前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)

热门文章

最新文章