Java语言程序设计——篇十五(2)


🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

  • 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳🌳
    您的点赞👍、关注➕、收藏⭐️、评论📝、私信📧是我最大的支持与鼓舞!!!🌻🌻🌻

常用控件(1)

常用控件

  • JavaFX提供大量的控件,控件类在javafx.scene.control包中,如Label、Button、TextField、PasswordField、TextArea、CheckBox、RadioButton、Slider等

Label类

  • Label表示一个标签,一个不可编辑显示区域。Label既可以显示文本,也可以显示图片。
  • 构造方法:
java 复制代码
 Label(String text)
 Label(String text, Node graphic)
  • 常用方法:
java 复制代码
 void setGraphic(Node value)
 void setAlignment(Pos value)
 void setTextFill(Paint value)
 void setContentDisplay(ContentDisplay value)

Button类

  • 按钮是JavaFX中最常用的控件,它可以响应用户点击事件。Button类可以显示文本、图像或者文本加图像。
  • 构造方法:
java 复制代码
 Button(String text)
 Button(String text, Node graphic)
  • 常用方法:
java 复制代码
 void setText(String text)
 void setGraphic(Node graphic)
 void setOnAction(EventHandler<ActionEvent> value)

TextField类和PasswordField类

  • TextField类表示单行文本框,通常用来接收用户输入的文本。PasswordField类表示密码框,用来接收用户输入密码。
  • 构造方法:
java 复制代码
 TextField()
 TextField (String text)
  • TextField类定义了text、editable、alignment等属性及属性设置方法:
java 复制代码
 void setText(String value)
 void setEditable(boolean value)
 void setAlignment(Pos value)
 void setPrefColumnCount(int value)
 void setPromptText(String value)
 void setOnAction(EventHandler<ActionEvent> v)
  • PasswordField是TextField类的子类,它用于创建密码框,密码框中输入的文本不回显,字符通常显示一个黑点。
  • 下面代码创建一个密码框:
java 复制代码
     PasswordField password = new PasswordField();
     password.setPromptText("请输入口令");

实战演练

问题描述:

下面程序使用文本框和密码框创建一个简单登录界面,并且为按钮设置了动作事件处理器,可以判断用户是否合法。

java 复制代码
import javax.swing.*;  
import java.awt.*;  
import java.awt.event.ActionEvent;  
import java.awt.event.ActionListener;  
  
public class LoginDemo extends JFrame {  
    private JTextField userTextField;  
    private JPasswordField passwordField;  
    private JButton loginButton;  
    private JLabel messageLabel;  
  
    public LoginDemo() {  
        // 设置窗口标题  
        setTitle("登录界面");  
        // 设置窗口关闭行为  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        // 设置布局管理器  
        setLayout(new FlowLayout());  
  
        // 初始化组件  
        userTextField = new JTextField(20);  
        add(userTextField);  
  
        passwordField = new JPasswordField(20);  
        add(passwordField);  
  
        loginButton = new JButton("登录");  
        add(loginButton);  
  
        messageLabel = new JLabel("");  
        add(messageLabel);  
  
        // 为登录按钮添加事件监听器  
        loginButton.addActionListener(new ActionListener() {  
            @Override  
            public void actionPerformed(ActionEvent e) {  
                // 获取用户名和密码  
                String username = userTextField.getText();  
                String password = new String(passwordField.getPassword());  
  
                // 简单的验证逻辑  
                if ("admin".equals(username) && "123456".equals(password)) {  
                    messageLabel.setText("登录成功!");  
                } else {  
                    messageLabel.setText("用户名或密码错误!");  
                }  
            }  
        });  
  
        // 调整窗口大小  
        pack();  
        // 设置窗口可见  
        setVisible(true);  
    }  
  
    public static void main(String[] args) {  
        // 在事件调度线程中运行创建UI的代码,以确保线程安全  
        SwingUtilities.invokeLater(new Runnable() {  
            @Override  
            public void run() {  
                new LoginDemo();  
            }  
        });  
    }  
}

TextArea类

  • TextArea类实现多行文本框,它允许用户输入多行文本。
  • 构造方法:
java 复制代码
 TextArea()
 TextArea(String text)
  • 常用方法:
java 复制代码
 void setText(String value)
 void setEditable(boolean value)
 void setAlignment(Pos value) 
 void setPrefColumnCount(int value) 
 void setPrefRowCount(int value)
  • TextArea提供滚动支持,但通常将TextArea对象放置到一个ScrollPane对象上,让ScrollPane处理TextArea的滚动会更加方便,如下代码所示:
java 复制代码
    TextArea taNode = new TextArea("多行文本区");
    ScrollPane  scrollPane = new ScrollPane(taNode);
    rootNode.setCenter(scrollPane);

实战演练

问题描述:

下面程序在一个标签上显示一个图像,在一个文本区域中显示一段长文本。

java 复制代码
import javax.swing.*;  
import java.awt.*;  
  
public class ImageAndTextDemo extends JFrame {  
    private JLabel imageLabel;  
    private JTextArea textArea;  
  
    public ImageAndTextDemo() {  
        // 设置窗口标题  
        setTitle("图像和文本演示");  
        // 设置窗口关闭行为  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        // 设置布局管理器  
        setLayout(new FlowLayout());  
  
        // 初始化图像标签  
        ImageIcon imageIcon = new ImageIcon("path/to/your/image.png"); // 替换为你的图像路径  
        imageLabel = new JLabel(imageIcon);  
        add(imageLabel);  
  
        // 初始化文本区域  
        textArea = new JTextArea(20, 50); // 20行50列  
        textArea.setText("这里是一段非常长的文本,可以在文本区域中滚动查看更多内容...");  
        textArea.setLineWrap(true); // 设置自动换行  
        textArea.setWrapStyleWord(true); // 设置断行不断字  
        JScrollPane scrollPane = new JScrollPane(textArea); // 为文本区域添加滚动条  
        add(scrollPane);  
  
        // 调整窗口大小  
        pack();  
        // 设置窗口可见  
        setVisible(true);  
    }  
  
    public static void main(String[] args) {  
        // 在事件调度线程中运行创建UI的代码,以确保线程安全  
        SwingUtilities.invokeLater(new Runnable() {  
            @Override  
            public void run() {  
                new ImageAndTextDemo();  
            }  
        });  
    }  
}

CheckBox类

  • CheckBox 类称为复选框或检查框。创建复选框需使用CheckBox类的构造方法。创建复选框的同时可以为其指明文本说明标签,这个文本标签用来说明复选框的意义和作用。
  • 例:
java 复制代码
     CheckBox cb1 = new CheckBox();            
     CheckBox cb2 = new CheckBox("文学");  
     cb1.setText("体育");            
     cb1.setSelected(true); //当一个复选框被单击(选中或者取消选中),会触发一个ActionEvent事件。要判断一个复选框是否被选中,使用isSelected()方法。

博主用心写,读者点关注,互动传真情,知识不迷路。

相关推荐
草莓熊Lotso8 分钟前
Git 本地操作进阶:版本回退、撤销修改与文件删除全攻略
java·javascript·c++·人工智能·git·python·网络协议
Ka1Yan9 分钟前
[数组] - LeetCode 704. 二分查找
java·开发语言·算法·leetcode·职场和发展
代码游侠12 分钟前
复习笔记——C语言指针
linux·c语言·开发语言·笔记·学习
合作小小程序员小小店19 分钟前
web网页开发,在线%餐饮点餐%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·数据库·html·intellij-idea·springboot
SimonKing22 分钟前
IntelliJ IDEA 2025.2.x的小惊喜和小BUG
java·后端·程序员
FrameNotWork23 分钟前
#RK3588 Android 14 虚拟相机 HAL 开发踩坑实录:从 Mali Gralloc 报错到成功显示画面
android·车载系统
曾帅16829 分钟前
idea springboot开发编译所见即所得应用不需要重启
java·spring boot·intellij-idea
q***420530 分钟前
PHP搭建开发环境(Windows系统)
开发语言·windows·php
星光一影1 小时前
基于PHP+MySQL+Uniapp的上门家政服务系统源码
开发语言·mysql·uni-app·php
Antonio9151 小时前
【Swift】 UIKit:UIGestureRecognizer和UIView Animation
开发语言·ios·swift