第一章:Java图形界面编程概述
1.1 Java图形界面编程简介
Java图形界面编程,指的是使用Java语言创建具有图形用户界面的应用程序。在Java中,我们可以通过Swing和JavaFX两个库来实现图形界面编程。本文将主要介绍Swing库的使用。
1.2 Swing库的优势
- 跨平台:Java程序可以在任何支持Java的操作系统上运行,Swing程序也不例外。
- 开源:Swing库是Java开源的一部分,可以免费使用。
- 功能丰富:Swing提供了丰富的组件,如按钮、文本框、列表框等,可以满足大部分图形界面需求。
第二章:Java图形界面编程基础
2.1 创建第一个Swing程序
以下是一个简单的Swing程序示例,用于创建一个包含一个按钮的窗口。
import javax.swing.*;
public class HelloWorld {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello World");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
JButton button = new JButton("点击我");
frame.getContentPane().add(button);
frame.setVisible(true);
}
}
2.2 Swing组件
Swing提供了丰富的组件,以下是一些常用的组件及其功能:
- JButton:按钮,用于响应用户点击。
- JTextField:单行文本框,用于输入文本。
- JTextArea:多行文本框,用于输入和显示多行文本。
- JList:列表框,用于显示一组选项供用户选择。
- JTable:表格,用于显示数据。
第三章:Java图形界面编程进阶
3.1 事件处理
在Swing程序中,事件处理是核心部分。以下是一个按钮点击事件的示例:
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理按钮点击事件
System.out.println("按钮被点击了!");
}
});
3.2 窗口布局
Swing提供了多种布局管理器,用于控制组件在窗口中的位置和大小。以下是一些常用的布局管理器:
- BorderLayout:将窗口分为五个区域,分别对应北、南、东、西、中。
- FlowLayout:按照组件添加顺序排列,自动换行。
- GridLayout:将窗口分为多个等大小的格子,组件依次填充格子。
第四章:实战案例
4.1 制作一个简单的计算器
以下是一个简单的计算器程序示例:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator {
public static void main(String[] args) {
JFrame frame = new JFrame("计算器");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 400);
JPanel panel = new JPanel(new GridLayout(5, 4));
JTextField resultField = new JTextField();
resultField.setHorizontalAlignment(JTextField.RIGHT);
panel.add(resultField);
String[] buttons = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", "C", "=", "+"
};
for (String button : buttons) {
JButton btn = new JButton(button);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if ("C".equals(command)) {
resultField.setText("");
} else if ("=".equals(command)) {
try {
double result = Double.parseDouble(resultField.getText());
resultField.setText(String.valueOf(result));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "输入错误!", "错误", JOptionPane.ERROR_MESSAGE);
}
} else {
resultField.setText(resultField.getText() + command);
}
}
});
panel.add(btn);
}
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
4.2 制作一个简单的记事本
以下是一个简单的记事本程序示例:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Notepad {
public static void main(String[] args) {
JFrame frame = new JFrame("记事本");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
JTextArea textArea = new JTextArea();
textArea.setFont(new Font("宋体", Font.PLAIN, 16));
JScrollPane scrollPane = new JScrollPane(textArea);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.setVisible(true);
}
}
第五章:总结
通过本文的学习,相信你已经掌握了Java图形界面编程的基本知识。在实际开发过程中,你可以根据自己的需求,灵活运用Swing组件和布局管理器,打造出各种个性软件。祝你编程愉快!
