Java 创建图形用户界面(GUI)组件详解之JFrame、JTextField、JTextArea、JPasswordField、JScrollPane、JLabel

7,457次阅读
没有评论

共计 3236 个字符,预计需要花费 9 分钟才能阅读完成。

文章目录

  • 组件详解
    • JFrame(窗口)常用方法
    • 文本输入组件
      • JTextField、JTextArea、JPasswordField
      • JTextField、JTextArea 等常用方法
      • 滚动窗格:JScrollPane
    • 标签组件:JLabel

组件详解

JFrame(窗口)常用方法

  • setTitle(String title):设置框架的标题

    参数:title 为要设置的标题字符串。

    示例:

    frame.setTitle("我的窗口");
    
  • setVisible(boolean visible):设置框架是否可见

    参数:visible 为布尔值,true 表示可见,false 表示不可见

    示例:

    frame.setVisible(true);
    
  • setDefaultCloseOperation(int operation):设置框架关闭时的操作

    参数:常见的取值有 JFrame.EXIT_ON_CLOSE(退出程序)、JFrame.DISPOSE_ON_CLOSE(释放资源但不退出程序)等

    示例:

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
  • setSize(int width, int height):设置框架的大小

    参数:width 为框架的宽度,height 为框架的高度。

    示例:

    frame.setSize(500, 400);
    
  • pack():自动调整大小

    根据添加到框架中的组件的首选大小,自动调整框架的大小,以适应其包含的组件

    可以避免手动设置框架大小可能导致的组件显示不全或空间浪费的问题

    会导致 setSize(int width, int height) 方法失效

  • setLocation(int x, int y):设置框架在屏幕上的位置

    参数:x 为横坐标,y 为纵坐标。

    示例:

    frame.setLocation(100, 100);
    
    setLocation((int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() - this.getWidth()) / 2,
                (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() - this.getHeight()) / 2);
    
  • getContentPane():获取框架的内容面板

    示例:

    Container contentPane = frame.getContentPane();
    
  • add(Component component):向框架的内容面板添加组件

    参数:component 为要添加的组件

    示例:

    frame.add(new JButton("按钮"));
    
  • remove(Component component):从框架的内容面板移除组件

    参数:component 为要移除的组件

    示例:

    frame.remove(button);
    
  • setResizable(boolean resizable):设置框架是否可由用户调整大小

    参数:visible 为布尔值,true 表示可见,false 表示不可见

    该属性默认为 true

    当设置为可调整大小时,用户可以根据自己的需求自由改变框架的宽度和高度,以适应不同的显示需求和操作习惯。但需要注意的是,如果框架中的组件布局没有合理处理大小变化,可能会导致界面显示不美观或功能异常。

文本输入组件

JTextField、JTextArea、JPasswordField

JTextField、JTextArea 等常用方法

  • javax.swing.JTextField extends JTextComponent:

    
    JTextField(int cols)
    
    JTextField(String text, int cols)
    
    int getColumns()
    void setColumns(int cols)
    
  • javax.swing.JPasswordField extends JTextComponent:

    
    JPasswordField(String text, int columns)
    
    void setEchoChar(char echo)
    
    char[] getPassword()
    
  • javax.swing.JTextArea extends JTextComponent:

    
    JTextArea()
    JTextArea(int rows, int cols)
    JTextArea(String text, int rows, int cols)
    
    
    void setColumns(int cols)
    
    void setRows(int rows)
    
    void append(String newText)
    
    void setLineWrap(boolean wrap)
    
    void setWrapStyleWord(boolean word)
    
    void setTabSize(int c)
    
  • java.swing.text.JTextComponent extends Component

    
    String getText()
    void setText(String text)
    
    boolean isEditable()
    void setEditable(boolean b)
    
    void revalidate()
    
    void setFont(Font f)
    
  • java.awt.Component

    
    void validate()
    
    Font getFont()
    

滚动窗格:JScrollPane

  • 在 Swing 中,文本区没有滚动条。如果需要滚动条,可以将文本区放在滚动窗格中,如果文本超出了文本区可以显示的范围,滚动条就会自动地出现,删除部分文本后,如果文本能够显示在文本区范围内,滚动条会再次自动地消失。滚动是由滚动窗格内部处理的,编写程序时无须处理滚动事件。

    这是一种适用于所有组件的通用机制,而不是文本区特有的。要想为组件添加滚动条,只需将它们放入一个滚动窗格中即可。

  • javax.swing.JScrollPane

    
    public JScrollPane(Component c)
    
  • 代码示例

    JTextArea textArea = new JTextArea(2, 20);
    JScrollPane scrollPane = new JScrollPane(textArea);
    jFrame.add(scrollPane, BorderLayout.CENTER);
    

标签组件:JLabel

  • 标签是容纳文本的组件,它们没有任何的修饰(例如没有边缘),也不能响应用户输入。可以利用标签标识组件。

  • 例如。与按钮不同,文本域没有标识它们的标签。要想用标识符标识这种本身不带标签的组件:

    • 用正确的文本构造一个 JLabel 组件
    • 将它放置在距离需要标识的组件足够近的地方,以便用户看出这个标签所标识的组件
  • JLabel 的构造器允许指定初始文本和图标,也可以选择内容的排列方式

    public JLabel(String text)
    public JLabel(Icon icon)
    public JLabel(String text, int align)
    public JLabel(String text, Icon icon, int align):构造一个标签。align 参数是一个 SwingConstants 常量
    
    • text 参数:标签的文本
    • icon 参数:标签的图标
    • align 参数:标签的排列方式,JLabel 类或 SwingConstants 接口常量(LEFT、RIGHT、CENTER、NORTH、EAST)
  • javax.swing.JLabel 常用方法:

    
    String getText()
    void setText(String text)
    
    Icon getIcon()
    void setIcon(Icon icon)
    
转载请注明出处或者链接地址:https://www.qianduange.cn//article/18555.html

原文地址: Java 创建图形用户界面(GUI)组件详解之 JFrame、JTextField、JTextArea、JPasswordField、JScrollPane、JLabel

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-30发表,共计3236字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)