Java GUI编程:JFrame成员方法与组件详解

需积分: 9 2 下载量 122 浏览量 更新于2024-08-18 收藏 1.93MB PPT 举报
本篇文章主要介绍了Java的图形用户界面(GUI)编程,特别是与`JFrame`类相关的成员方法及其功能。`JFrame`是Java Swing库中的核心类,用于创建窗口应用程序的基础。以下是一些关键知识点: 1. **JFrame成员方法**: - `getContentPane()`:返回窗口的ContentPane组件,这是窗口的主要内容区域,用于放置其他组件。 - `getDefaultCloseOperation()`:获取窗口关闭时的缺省处理方式,例如关闭、退出或最小化等。 - `setDefaultCloseOperation(int type)`:设置窗口关闭时的行为,如`EXIT_ON_CLOSE`、`DISPOSE_ON_CLOSE`等。 - `update(Graphics g)`:当窗口需要重绘时,调用此方法来通知系统执行`paint()`方法,以更新窗口显示。 - `remove(Component component)`:从窗口中移除指定的组件。 - `getMenuBar()`:获取窗口中的菜单栏组件,通常用于创建菜单和工具栏。 - `setLayout(LayoutManager manager)`:设置窗口内组件的布局管理器,控制组件在容器内的排列方式。 2. **GUI的构成要素**: - **组件**:是GUI的核心,提供特定功能并有预定义的接口供外部调用,如`JButton`、`JLabel`等,具有良好的可复用性。 - **容器**:如`JFrame`,是更大的逻辑单位,可以容纳多个组件,并通过`LayoutManager`进行布局管理,形成复杂的界面结构。 - **事件处理**:组件是事件源,不同的事件(如鼠标点击、键盘输入等)由监听器(Listener)处理,实现用户交互。 3. **用户界面设计原则**: - 控制权交给用户:用户应能自主控制界面和操作流程。 - 一致性:界面风格应与操作逻辑一致,提高用户熟悉度。 - 宽容性:允许用户犯错并提供清晰的反馈。 - 简洁美观:界面设计要直观易懂,同时注重视觉吸引力。 4. **Java图形用户界面实现步骤**: - 创建容器和组件,确定它们的位置和层级关系。 - 配置组件的事件监听器,使它们对用户输入做出响应。 - 设计和实现用户自定义组件,扩展功能和界面外观。 总结起来,本文讲解了如何使用`JFrame`类构建GUI应用,包括组件的使用、容器的管理、布局的设置以及关键的事件处理机制,这些都是GUI设计和开发的基础内容。同时,强调了良好的用户界面设计原则对于用户体验的重要性。

public class checkGpa extends JFrame implements ActionListener { static JButton backButton = new JButton("back"); JFrame frame = new JFrame("GPA"); Label averageGPALabel = new Label("average GPA"); JTextField averageGPAField = new JTextField(); Label weightedGPALabel = new Label("weighted GPA"); JTextField weightedGPAField = new JTextField(); /** * Constructor creates a JFrame and sets its properties. * Calls the PersonalReader method to read and display student GPA information. * Adds a JPanel to the JFrame and creates and positions various GUI elements. * Sets an ActionListener for the back button to return to the previous window. * * @throws IOException if an error occurs while reading from the JSON file */ public checkGpa() throws IOException { frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setSize(400, 300); // Create and set properties for JPanel JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); // Create and position GUI elements averageGPALabel.setBounds(10, 10, 20, 10); averageGPALabel.setBounds(20, 10, 100, 10); averageGPAField.setBounds(120, 10, 100, 10); weightedGPALabel.setBounds(10, 40, 100, 10); weightedGPAField.setBounds(120, 40, 100, 10); backButton.setAlignmentX(Component.CENTER_ALIGNMENT); // Display GPA information by calling PersonalReader method GPA gpa = PersonalReader(); averageGPAField.setText(gpa.getAverageGPA()); weightedGPAField.setText(gpa.getWeightedGPA()); panel.add(averageGPALabel); panel.add(averageGPAField); panel.add(weightedGPALabel); panel.add(weightedGPAField); panel.add(backButton); backButton.addActionListener(this); frame.add(panel); frame.setVisible(true); }使用tdd改写

2023-05-26 上传