[【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("反转数组");

    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48180029/article/details/112056178