共计 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)
原文地址: Java 创建图形用户界面(GUI)组件详解之 JFrame、JTextField、JTextArea、JPasswordField、JScrollPane、JLabel