这是一个java模拟栈的编写
package net.etwo.cec.stack;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author etwo
*
*/
public class ImitateStack {
private JFrame jfMain;// 主窗体
private JPanel jpMain;// 面板
private JLabel jlShowStack, jlOneNum, jlOutStackState, jlState;
private JTextField jtfShowStack, jtfOneNum, jtfOutStackState;
private JButton jbtnOutStack, jbtnInStack, jbtnClearStack;
public ImitateStack() {
jfMain = new JFrame("栈模拟器");
jpMain = new JPanel();
jlState = new JLabel("栈模拟器!");
jlShowStack = new JLabel("栈显示情况:");
jlOneNum = new JLabel("请输入一个整数:");
jlOutStackState = new JLabel("出栈情况:");
jtfShowStack = new JTextField(50);
jtfOneNum = new JTextField(30);
jtfOutStackState = new JTextField(30);
jbtnOutStack = new JButton("出 栈");
jbtnInStack = new JButton("进 栈");
jbtnClearStack = new JButton("清空栈");
jpMain.setLayout(null);
jlState.setBounds(220, 20, 200, 20);
jlShowStack.setBounds(29, 60, 100, 20);
jtfShowStack.setBounds(133, 60, 250, 20);
jbtnOutStack.setBounds(400, 60, 75, 20);
jlOneNum.setBounds(3, 100, 150, 20);
jtfOneNum.setBounds(133, 100, 250, 20);
jbtnInStack.setBounds(400, 100, 75, 20);
jlOutStackState.setBounds(42, 140, 150, 20);
jtfOutStackState.setBounds(133, 140, 250, 20);
jbtnClearStack.setBounds(400, 140, 75, 20);
jpMain.add(jlState);
jpMain.add(jlShowStack);
jpMain.add(jtfShowStack);
jpMain.add(jbtnOutStack);
jpMain.add(jlOneNum);
jpMain.add(jtfOneNum);
jpMain.add(jbtnInStack);
jpMain.add(jlOutStackState);
jpMain.add(jtfOutStackState);
jpMain.add(jbtnClearStack);
jfMain.add(jpMain);
jfMain.setSize(566, 370);
jfMain.setLocationRelativeTo(null);
jfMain.setVisible(true);
jfMain.setDefaultCloseOperation(jfMain.EXIT_ON_CLOSE);
// 设置栈本身不可编辑
jtfShowStack.setEnabled(false);
// 进栈
jbtnInStack.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
actionMain(jtfOneNum, jbtnInStack);
}
});
// 栈清空
jbtnClearStack.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String strStack = jtfShowStack.getText();
if ("".equals(strStack)) {
JOptionPane.showMessageDialog(jfMain, "栈已为空!");
} else {
jtfShowStack.setText("");
}
}
});
// 出栈
jbtnOutStack.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str = jtfShowStack.getText().trim();
if ("".equals(str)) {
JOptionPane.showMessageDialog(jfMain, "栈已经为空");
} else {
String[] strBuf = str.split(" ");
for (int i = strBuf.length - 1; i >= 0; i--) {
jtfOutStackState.setText(strBuf[0]);
jtfShowStack.setText(str.substring(strBuf.length - i));
break;
}
}
}
});
}
public void actionMain(JTextField jtfNum, JButton jbtnStack) {
String numStack = jtfNum.getText().trim();
if ("".equals(numStack)) {
JOptionPane.showMessageDialog(jfMain, "不能为空");
} else {
try {
Integer intStack = Integer.parseInt(numStack);
jtfShowStack.setText(numStack + " " + jtfShowStack.getText());
jtfNum.setText("");
// jbtnStack.setEnabled(false);
} catch (Exception e2) {
// TODO: handle exception
JOptionPane.showMessageDialog(jfMain, "请输入整数");
}
}
}
public static void main(String[] args) {
new ImitateStack();
}
}
分享到:
相关推荐
【问题描述】 设停车场是一个可停放N辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在南端,最先...请为停车场编写按上述要求进行管理的模拟程序。
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
技术栈:Java swing,mysql 三、系统功能 用户的登录功能 用户的注册功能 用户个人业务模块: 包括:取款功能, 修改密码功能, 存款功能, 显示余额功能, 转账功能, 个人信息功能, 交易明细功能, 退出系统
作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益! 本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...
编写的铁路售票应用系统。 技术栈 所使用到的技术:Java Swing + Java AWT + MySQL 5.5.62 运行截图 登录界面 注册用户 默认的注册是乘客身份,必须要填写完整信息并确定阅读相关服务条款后才能进行注册,否则会有...
资源中包含两个实验的代码:①泛型栈模拟泛型队列;②医院简易挂号管理系统
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置...
实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector...
实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 ...
实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用...
Java经典入门教程pdf完整版Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 3;Java是一种软件运行平台 3.1:什么是软件的运行平台 ...Java虚拟杋是在真实札器中用软件模拟实现的—种想象...
实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector...
实例193 简单的模拟时钟 246 实例194 简单的公历万年历 248 实例195 查看生日相关信息 249 9.2 SimpleDateFormat与TimeZone 类的使用 250 实例196 日期格式有效性判断 250 实例197 常见日期格式使用 252 实例198 ...
数组、链表、栈、队列等基本数据结构的实现与操作。 掌握基本的排序算法(如冒泡排序、快速排序、归并排序等)和查找算法(如二分查找、哈希查找)。 理解并掌握一些经典的算法设计策略,如分治、动态规划、贪心...
控制 Web 浏览器并模拟用户交互的 Java API 3.8.1 测试NG框架 它提供了以灵活的方式组织和运行测试的功能 6.8 Maven 依赖项和构建管理 4.0.0 范围报告 提供用于报告基于Selenium的测试的 API 的开源 Java 库 ...
java抓取技术源码 本课程主要是使用 Spring技术栈 + dubbo 开发一个类似当当的图书电商后台的实战教程。 视频学习请戳: 课程特点: 1.课程的技术体系足够系统、全面以及细致:课程中涉及的主要技术包括: Spring IO...
如何集成Zeebe并使用Java、Spring Boot、JavaScript/TypeScript、Node.js、.NET、Go等等各种语言与各式框架来编写管理与适配程序进行流程控制和业务绑定。 软件技术方法栈 领域驱动设计(DDD) 图形化建模语言工具:...