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

在这里插入图片描述
在这里插入图片描述

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

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

在这里插入图片描述

常用控件

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

Label类

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

Button类

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

TextField类和PasswordField类

  • TextField类表示单行文本框,通常用来接收用户输入的文本。PasswordField类表示密码框,用来接收用户输入密码。
  • 构造方法:
 TextField()
 TextField (String text)
  • TextField类定义了text、editable、alignment等属性及属性设置方法:
 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类的子类,它用于创建密码框,密码框中输入的文本不回显,字符通常显示一个黑点。
  • 下面代码创建一个密码框:
     PasswordField password = new PasswordField();
     password.setPromptText(“请输入口令");

实战演练

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

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类实现多行文本框,它允许用户输入多行文本。
  • 构造方法:
 TextArea()
 TextArea(String text)
  • 常用方法:
 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的滚动会更加方便,如下代码所示:
    TextArea taNode = new TextArea("多行文本区");
    ScrollPane  scrollPane = new ScrollPane(taNode);
    rootNode.setCenter(scrollPane);

实战演练

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

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

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

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倾听一世,繁花盛开

你的鼓励是我创作最大的动力与支

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值