Java源代码分析:经典程序示例

4星 · 超过85%的资源 需积分: 25 12 下载量 85 浏览量 更新于2024-07-24 4 收藏 466KB PDF 举报
"该资源包含了两个经典的Java程序源代码,分别是数字化的连连看游戏(lianliankan.java)和一个简单的加法计算器(Adder.java)。这两个程序都是基于Swing库来构建用户界面,并实现了事件监听功能。" 在《经典Java程序源代码》中,我们有两个示例: 1. **数字化连连看游戏(lianliankan.java)**: - 这个程序使用了`javax.swing`和`java.awt`包,这两个包是Java Swing库的一部分,用于构建图形用户界面。 - `lianliankan.java` 实现了一个名为 `lianliankan` 的类,该类继承自 `ActionListener` 接口,意味着它将处理按钮点击事件。 - 类中定义了多个成员变量,如 `JFrame mainFrame` 代表主窗口,`JButton diamondsButton[][]` 用于创建游戏棋盘,以及 `JButton exitButton, resetButton, newlyButton` 分别对应退出、重置和重新开始的功能按钮。 - 变量 `grid[][]` 存储了游戏按钮的位置信息,而 `pressInformation` 用来跟踪是否有按钮被选中。 - `init()` 方法初始化了整个游戏界面,包括设置布局管理器、创建面板及添加组件。 2. **加法计算器(Adder.java)**: - `Adder` 类同样实现了 `ActionListener` 接口,用于处理按钮点击事件。 - 程序创建了一个 `JFrame` 对象 `AdderFrame` 作为主窗口,包含两个 `JTextField` 对象 `TOprand1` 和 `TOprand2` 用于输入数字,以及一个 `JLabel` 对象 `LSum` 显示计算结果。 - 用户界面还包括一个加号 `JLabel` `LAdd`,以及两个按钮 `BAdd` 和 `BClear`,分别执行加法操作和清零操作。 - `BAdd` 按钮的点击事件处理方法使用了匿名内部类,而 `BClear` 按钮的点击事件处理方法直接在构造函数中定义。 - 程序通过 `BorderLayout` 布局管理器来组织组件,将输入框和按钮分别放在窗口的北部和南部。 这两个示例展示了如何使用Java Swing库创建具有交互性的用户界面,并处理用户的输入。它们对于初学者理解Java GUI编程和事件处理机制很有帮助。在实际开发中,开发者可以依据这些基础进行扩展,实现更复杂的功能,比如连连看游戏的匹配逻辑和加法计算器的计算逻辑。
2495 浏览量
160个项目开发实例,聊天项目,小游戏适和新手学习(项目采用GBK编码)。 import java.util.*; import java.io.*; import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; class Gobang extends JFrame implements Runnable, ActionListener { final static int Player=1; final static int AI =-1; ClassLoader cl = this.getClass().getClassLoader(); Toolkit tk = Toolkit.getDefaultToolkit(); int length=14, game_state, winner, check, step; int grid[][] = new int[length][length]; int locX, locY /* 囱竚 */, count /* 硈囱计 */, x, y /* 既竚 */, displace_x=0, displace_y=0 /* 簿秖 */, direction; ArrayList steps = new ArrayList(); /* 癘魁囱˙ */ JPopupMenu control_menu = new JPopupMenu(); /* 龄匡虫 */ JMenuItem[] command = new JMenuItem[4]; String[] command_str={"囱", "郎", "弄郎", "秨"}; int[][] dir = { {-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1} }; boolean[] dir2 = new boolean[8]; boolean turn; String message; final JDialog dialog = new JDialog(this, "叫匡", true); Font font=new Font("new_font", Font.BOLD, 20); Grid grids[][] = new Grid[length][length]; Image white= tk.getImage(cl.getResource("res/white.png")); Image black= tk.getImage(cl.getResource("res/black.png")); Image title= tk.getImage(cl.getResource("res/title.png")); Image temp; JPanel boardPanel, bigpanel; JRadioButton[] choice = new JRadioButton[2]; final static int Start =0; final static int Select =1; final static int Playing =2; final static int End =3; final static int nil=-1; /* 礚よ */ final static int oblique_1 =0; /* オ */ final static int oblique_2 =1; /* オ */ final static int horizontal =2; /* 绢 */ final static int vertical=3; /*  */ Gobang() { super("き囱"); boardPanel = new JPanel(); boardPanel.setLayout(new GridLayout(length, length, 0, 0)); boardPanel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); for(int i=0; i<length; i++) for(int j=0; j<length; j++) {