java的栈图形演示
JAVA 图形 演示
2023-09-14 08:57:54 时间
指示发生了组件定义的动作的语义事件。当特定于组件的动作(比如被按下)发生时,由组件(比如 Button)生成此高级别事件。
事件被传递给每一个 ActionListener 对象,这些对象是使用组件的 addActionListener 方法注册的,用以接收这类事件。
所以在给TextField类添加 ActionListener 类型的监听器时就会失败!
****下面还有XXXListener和XXXAdapter的用法,相信你会喜欢上XXXAdapter的用法
public class stackDemo extends MouseAdapter{
JFrame fr=new JFrame("StackDemo");//对话框
JPanel pan= new JPanel();//菜单面板
JPanel panStack = new JPanel();
JButton pushBtn, popBtn, peekBtn;
JTextField tf= new JTextField("整数", 4);
JButton stackBtn[]= new JButton[10];
JPanel panStackPointerLabel= new JPanel();
JLabel stackPointerLabel = new JLabel(" -top");
JPanel panRet= new JPanel();
JTextField tfRet= new JTextField("操作结果!");
int top;
public stackDemo(){
fr.setSize(420,500);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
pan.setPreferredSize(new Dimension(400, 50));
pan.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
panStack.setPreferredSize(new Dimension(80, 350));//设置栈面板大小
panStack.setBackground(Color.yellow);
pan.setBackground(Color.blue);
pan.add(new JLabel("操作菜单:"));
pan.add(pushBtn=new JButton("进栈"));
pushBtn.addMouseListener(new pushAction());
pan.add(popBtn=new JButton("出栈"));
popBtn.addMouseListener(new popAction());
pan.add(peekBtn=new JButton("栈顶元素"));
tf.addMouseListener(this);
pan.add(tf);
for(int i=0; i ++i){
stackBtn[i]=new JButton(" ");
panStack.add(stackBtn[i]);
fr.add(pan);
fr.add(panStack);
panStackPointerLabel.setLayout(null);
panStackPointerLabel.setPreferredSize(new Dimension(80, 350));//设置指针面板的大小
panStackPointerLabel.setBackground(Color.LIGHT_GRAY);
stackPointerLabel.setFont(new Font("华文行楷", Font.BOLD, 20));
panStackPointerLabel.add(stackPointerLabel);
fr.add(panStackPointerLabel);
panRet.setLayout(new FlowLayout(FlowLayout.LEFT));
panRet.setBackground(Color.red);
panRet.setPreferredSize(new Dimension(400, 50));
tfRet.setEditable(false);//不能不编辑
panRet.add(tfRet);//操作结果面板
fr.add(panRet);
fr.setVisible(true);
stackPointerLabel.setBounds(0, stackBtn[9].getLocation().y, 50, 50);//设置栈顶指针位置
top=9;
public void mouseClicked(MouseEvent e){
tf.selectAll();//鼠标单击时选中全部文本
//push 按钮监听器
class pushAction implements MouseListener{
public void mouseClicked(MouseEvent e){
String text;
if((text=tf.getText())!=" "){
for(int i=0; i text.length(); ++i)
if(!Character.isDigit(text.charAt(i)))
return ;
if(top 0){
tfRet.setText("栈顶溢出!");
return ;
Point pt=stackBtn[top].getLocation();
stackBtn[top].setText(text);
tfRet.setText("进栈值" + text);
stackPointerLabel.setBounds(0, pt.y, 50, 50);
--top;
public void mouseDragged(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseMoved(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mousePressed(MouseEvent e){}
//pop按钮监听器
class popAction extends MouseAdapter{
public void mouseClicked(MouseEvent e){
String text;
if(top =9){
tfRet.setText("栈底溢出!");
return ;
++top;
Point pt=stackBtn[top].getLocation();
text=stackBtn[top].getText();
tfRet.setText("出栈值" + text);
stackBtn[top].setText(" ");
stackPointerLabel.setBounds(0, pt.y, 50, 50);
public static void main(String args[]){
stackDemo mySstackDemo = new stackDemo();
}
算法与数据结构-栈(Stack)-Java实现 下压栈(FIFO queue),或者说栈(queue),是一种基于先进后出策略的集合模型。只要你留心,就会发现栈这种数据结构在生活中非常常见。
算法与数据结构-栈(Stack)-Java实现 下压栈(FIFO queue),或者说栈(queue),是一种基于先进后出策略的集合模型。只要你留心,就会发现栈这种数据结构在生活中非常常见。
相关文章
- java map 二维数组_Java二维数组实现简单Map
- Java私活300元,完成JavaWeb志愿者管理系统(四)
- java BigDecimal类型 比较大小
- java 基础语法
- Java—java.util.calendar类详解「建议收藏」
- java中定义常量_形参可以是表达式吗
- 二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6
- Java 文件及 IO 【复习备考简单练习 一】
- GitHub 更新 Copilot 以阻止不安全代码,并称其支持了超 60% 的 Java 开发者
- Java 批量随机生成身份证号码详解编程语言
- java判断字符串中是否包含字母详解编程语言
- 中的应用Java中MySQL的灵活运用(mysql在java代码)
- 注册MySQL,让你的Java技能更上一层楼(java注册mysql)
- Java 文件重命名详解编程语言
- 策略解决方案:Java实现Redis的过期策略(redisjava过期)
- 策略Redis Java实现失效缓存策略(redisjava过期)
- Java并发之AQS详解
- 如何在Linux系统下有效地启动Java程序,让你的代码在Linux中也能正常运行?(linux下启动java)
- 进程Linux下创建多个Java进程的简易方法(linux 多个java)
- 使用Java语言驱动Oracle数据库(Java嵌入oracle)
- 别于Oracle JDK其他开发者Java选择(oracle jdk以外)
- 十种JAVA排序算法实例
- java基础知识I/O流使用详解