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

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

相关推荐
温辉_xh9 分钟前
uiautomator案例
android
湫ccc41 分钟前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐41 分钟前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
oi771 小时前
使用itextpdf进行pdf模版填充中文文本时部分字不显示问题
java·服务器
mqiqe1 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
工业甲酰苯胺1 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
AttackingLin1 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
少说多做3432 小时前
Android 不同情况下使用 runOnUiThread
android·java