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()方法。

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

相关推荐
带刺的坐椅7 分钟前
qwen3 惊喜发布,用 ollama + solon ai (java) 尝个鲜
java·spring·solon·solon-ai·qwen3
香蕉可乐荷包蛋30 分钟前
Python面试问题
开发语言·python·面试
ErizJ40 分钟前
Golang|分布式索引架构
开发语言·分布式·后端·架构·golang
.生产的驴41 分钟前
SpringBoot 接口国际化i18n 多语言返回 中英文切换 全球化 语言切换
java·开发语言·spring boot·后端·前端框架
Howard_Stark44 分钟前
Spring的BeanFactory和FactoryBean的区别
java·后端·spring
饮长安千年月1 小时前
学生管理系统审计
java·网络安全·代码审计
八股文领域大手子1 小时前
深入浅出限流算法(三):追求极致精确的滑动日志
开发语言·数据结构·算法·leetcode·mybatis·哈希算法
-曾牛1 小时前
Spring Boot中@RequestParam、@RequestBody、@PathVariable的区别与使用
java·spring boot·后端·intellij-idea·注解·spring boot 注解·混淆用法
新时代苦力工1 小时前
处理对象集合,输出Map<String, Map<String, List<MyObject>>>格式数据,无序组合键处理方法
java·数据结构·list
前行的小黑炭1 小时前
Android Lifecycle代码分析:为什么使用;注解的方式为什么过期?源码分析;状态与事件
android