使用分治法实现快速排序JAVA_遞歸分治法在快速排序中的應用 java以界面的方式實現...

import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.*;public class recursionFrame extends JFrame implements ActionListener {private JLabel firstNumberLabel, secondNumberLabel, searchLabel,resultLabel, result;private JButton upButton, downButton;private JTextField firstNumber, secondNumber, searchNumber;numberTaxis numbertaxis;recursionFrame() {super("遞歸分治法應用");numbertaxis = new numberTaxis();mainFrame();}boolean updown = true;public void actionPerformed(ActionEvent e) {// TODO 事件的處理if (e.getSource() == firstNumber) {action(true);} else if (e.getSource() == downButton) {action(false);updown = false;} else if (e.getSource() == upButton) {action(true);updown = true;} else if (e.getSource() == searchNumber) {String str1 = searchNumber.getText();String str2 = secondNumber.getText();boolean isnumber = numbertaxis.isNumber(searchNumber.getText());if (!str2.equals("") && !str1.equals("") && isnumber) {result.setText(numbertaxis.search(str1, updown));} else {JOptionPane.showMessageDialog(this, "您輸入的搜索數據有錯誤請從新輸入!","警告對話框", JOptionPane.WARNING_MESSAGE);searchNumber.setText("");}}}public void mainFrame() {firstNumberLabel = new JLabel("請輸入一組數據,以逗號隔開(默認為升序排列):");secondNumberLabel = new JLabel("排序結果:");searchLabel = new JLabel("請輸入要查詢的數據,以回車鍵確定:");resultLabel = new JLabel("查詢結果是:");result = new JLabel(" ");upButton = new JButton("升序排列");downButton = new JButton("降序排列");firstNumber = new JTextField(50);secondNumber = new JTextField(50);searchNumber = new JTextField(10);upButton.addActionListener(this);downButton.addActionListener(this);firstNumber.addActionListener(this);searchNumber.addActionListener(this);this.add(firstNumberLabel);firstNumberLabel.setBounds(10, 10, 290, 25);this.add(firstNumber);firstNumber.setBounds(10, 35, 270, 25);this.add(upButton);upButton.setBounds(20, 65, 100, 25);this.add(downButton);downButton.setBounds(150, 65, 100, 25);this.add(secondNumberLabel);secondNumberLabel.setBounds(10, 95, 70, 25);this.add(secondNumber);secondNumber.setBounds(10, 120, 270, 25);this.add(searchLabel);searchLabel.setBounds(10, 150, 230, 25);this.add(searchNumber);searchNumber.setBounds(230, 150, 50, 25);this.add(resultLabel);resultLabel.setBounds(10, 180, 100, 30);this.add(result);result.setBounds(10, 205, 200, 30);Toolkit tool = getToolkit();// 獲取屏幕的大小Dimension dim = tool.getScreenSize();this.setBounds(dim.width / 2 - 150, dim.height / 2 - 100, 300, 300);this.setLayout(null);this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//this.addWindowListener(new WindowAdapter()//{//public void windowClosing(WindowEvent e){//System.exit(0);//}//}//);}public void action(boolean updown) {// 對輸入的數據驗證和排序if (numbertaxis.isNumber(firstNumber.getText())&& !firstNumber.getText().equals("")) {secondNumber.setText(numbertaxis.uptaxis(firstNumber.getText(),updown));} else {JOptionPane.showMessageDialog(this, "您輸入的數據有錯誤請從新輸入!", "警告對話框",JOptionPane.WARNING_MESSAGE);}}}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值