【Java】【组件及事件处理】反转数组

在这里插入图片描述

MyFrame:

package com.itheima;
import javax.swing.*;
import java.awt.*;
public class MyFrame extends JFrame{
    JLabel label1,label2;
    JTextField text;
    JButton Button,ClearButton;
    JTextArea area;
    PoliceListen policeListen;
    public MyFrame() {
        init();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void init(){
        setLayout(new FlowLayout());
        label1 = new JLabel("输入数组内容,空格为数组元素分隔符");
        label2 = new JLabel("数组元素反转");
        text = new JTextField(20);
        Button = new JButton("反转数组元素");
        ClearButton = new JButton("清除");
        area = new JTextArea(9,20);
        add(label1);
        add(text);
        add(label2);
        add(new JScrollPane(area));
        add(Button);
        add(ClearButton);
        policeListen = new PoliceListen();
        policeListen.setText(text);
        policeListen.setArea(area);
        policeListen.setButton(Button);
        policeListen.setClearButton(ClearButton);
        Button.addActionListener(policeListen);
        ClearButton.addActionListener(policeListen);
    }
}

PoliceListen:

package com.itheima;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import static java.util.Arrays.*;

public class PoliceListen implements ActionListener {
    JTextField text;
    JButton Button,ClearButton;
    JTextArea area;

    public void setText(JTextField text) {
        this.text = text;
    }

    public void setButton(JButton Button) {
        this.Button = Button;
    }

    public void setClearButton(JButton clearButton) {
        ClearButton = clearButton;
    }

    public void setArea(JTextArea area) {
        this.area = area;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == Button){
            String arrayStr = text.getText().trim();
            if(arrayStr.equals("")){//当文本框为空时,提示输入内容
                JOptionPane.showMessageDialog(null,"请输入数字内容");
                return;
            }
            for(int i=0;i<arrayStr.length();i++){ //当文本框有非数字时,提示。
                char c = arrayStr.charAt(i);
                if(!Character.isDigit(c) && c != ' '){
                    JOptionPane.showMessageDialog(null,"输入包含非数字内容");
                    text.setText("");
                    return;
                }

            }
            String numStrs[] = arrayStr.split(" {1,}");
            String temp;
            for(int i=0;i<numStrs.length/2;i++){
                temp = numStrs[i];
                numStrs[i] = numStrs[numStrs.length - i - 1];
                numStrs[numStrs.length - i - 1] = temp;
                for(String str:numStrs){
                    area.append(str + " ");
                }
                area.append("\n");
            }
        }
        if(e.getSource() == ClearButton){
            text.setText("");
            area.setText("");
        }

    }
}

Main:

package com.itheima;
public class Main {
    public static void main(String[] args) {
        MyFrame myFrame = new MyFrame();
        myFrame.setBounds(100,100,280,320);
        myFrame.setTitle("反转数组");

    }
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值